作家
登录

谈谈那些实用的Nginx规则

作者: 来源: 2018-01-16 19:26:49 阅读 我要评论

  1. location  = /  
  2. location  /  
  3. location ^~ /test{ 
  1. location ~ .*\.php$ 

2.15 文件缓存

返回给用户的文件一般都设备了过不时光,让浏览器缓存起来。

比如缓存14天:

  1. expires 14d; 

针对某些特别的文件就须要location匹配之落后行禁止缓存设备:

2.16 缓存文件

nginx可以作为ATS如许的缓存办事器来缓存文件,设备也比较简单,不过我们很罕用,除非一些特别的场合,参考设备:

  1. #先在全局下面定义好缓存存放的目次 
  2. proxy_cache_path  /data/cache/ levels=1:2 keys_zone=cache_one:10m inactive=7d max_size=10g; 
  3. proxy_temp_path   /data/cache/proxy_temp_path; 
  4. proxy_cache_key   $host$uri$is_args$args; 
  5. #然后在server琅绫擎的location匹配好目标文件,参加下一段即可 
  6. proxy_cache cache_one; 
  7. proxy_cache_valid 200 304 24h; 
  8. proxy_cache_valid any 10m; 
  9. proxy_pass https://$host; 
  10. proxy_cache_key $host$uri$is_args$args; 
  11. add_header  Nginx-Cache "$upstream_cache_status"; 3. 内置模块 

3. 内置模块

2.11 gzip

nginx含有大年夜量的模块可以支撑多种复杂的需求,比如源码目次src/http/modules琅绫擎就有很多c模块的代码,或者直接经由过程./configure –help|grep module来查看竽暌剐哪些内置模块,编译时刻直接加上就可以了。

除了nginx内置的模块,收集上还有很多第三方的模块,可以经由过程编译时刻加参数–add-module=PATH指定模块源率攀来编译。

下面介绍一些我们线上用过并且比较赞的内置模块。

3.1 stream

端口转发的模块,大年夜nginx1.9版本才开端支撑,包含tcp和udp的支撑,和IPTABLES比拟这个固然是应用层,会监听端口,然则设备起来很便利,比IPTABLES灵活,在tcp模块下面添加类似vhost的server就可以了,便利主动化治理,参考设备:

  1. server { 
  2.     listen PORT; 
  3.     proxy_pass IP:PORT; 
  4.     access_log /data/logs/tcp/PORT.log; 

3.2 http_realip_module

nginx反向代劳之后,若何让后端web直接获取到的IP不是反向代劳的iP,而是直接获取到用户的┞锋实IP呢,就须要这个模块了,不须要代码那边再做类似X-Real-IP的变量特别断定。

3.3 http_slice_module

在做CDN时刻可以用到,让一个大年夜文件分片,分成多个小文件经由过程206断点续传到后端,然后再组合起来,避免大年夜文件直接回源导致多副本和多次回源的问题。

3.4 http_secure_link_module

前面说到的防盗链可以用这个来做,然则这个一般是针对那种文件下载时刻用到的,比如大年夜网页下载时刻,办事端生成一个加密URL给用户,然后这个URL有过不时光之类的,避免此URL被多次分享出去,不过通俗的素材加载照样用通俗的防盗链即可。

3.5 http_sub_module

调换响应给用户的内容,相对于sed之后再返回,比如可以在须要临时全局修改网站背景或者title时刻可以一次性处理好。

4. 扩大项目

简单介绍下大年夜名鼎鼎的两个基于nginx的扩大项目,也是我们线上有很多处所用到的。

4.1 openresty

集成lua脚本,几乎可以完成任何通俗web相干的需求。

比如URL加密进行防劫持和防盗链,办事端动态生成一串aes加密的URL给CDN,CDN的openresty解密之后用通俗的URL转发到后端,然后再返回给用户精确的内容。

4.2 tengine

淘宝的nginx修改版,实现了很多nginx的收费功能或者是特别功能,比如动态加载、concat归并请求,动态解析等。

2.2 防盗链

  1. auth_basic "Restricted"
  2. auth_basic_user_file passwd_file; 

我们python开辟的后台根本都是用的┞封个版本,主如果应用了concat的归并素材的功能。

5. 结语

Nginx是个异常实用软件,部分功能已经超出了通俗的web办事定位,同时它具备开源、轻量、主动化等特点,能有效解决实际工作中很独特别场景的需求,祝Nginx在全球的份额持续攀升~

【编辑推荐】


  推荐阅读

  容器圈2017年回顾及2018年技术热点预测

年前最后一场技巧盛宴 | 1月27日与京东、日记易技巧大年夜咖畅聊智能化运维成长趋势! 谈及容器技巧,毫不夸大地说,2017年是“Kubernetes之年”。Kubernetes自2014年推出以来,>>>详细阅读


本文标题:谈谈那些实用的Nginx规则

地址:http://www.17bianji.com/lsqh/40297.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)