- location = /
- location /
- location ^~ /test{
- location ~ .*\.php$
2.15 文件缓存
返回给用户的文件一般都设备了过不时光,让浏览器缓存起来。
比如缓存14天:
- expires 14d;
针对某些特别的文件就须要location匹配之落后行禁止缓存设备:
2.16 缓存文件
nginx可以作为ATS如许的缓存办事器来缓存文件,设备也比较简单,不过我们很罕用,除非一些特别的场合,参考设备:
- #先在全局下面定义好缓存存放的目次
- proxy_cache_path /data/cache/ levels=1:2 keys_zone=cache_one:10m inactive=7d max_size=10g;
- proxy_temp_path /data/cache/proxy_temp_path;
- proxy_cache_key $host$uri$is_args$args;
- #然后在server琅绫擎的location匹配好目标文件,参加下一段即可
- proxy_cache cache_one;
- proxy_cache_valid 200 304 24h;
- proxy_cache_valid any 10m;
- proxy_pass https://$host;
- proxy_cache_key $host$uri$is_args$args;
- 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就可以了,便利主动化治理,参考设备:
- server {
- listen PORT;
- proxy_pass IP:PORT;
- 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 防盗链
- auth_basic "Restricted";
- auth_basic_user_file passwd_file;
我们python开辟的后台根本都是用的┞封个版本,主如果应用了concat的归并素材的功能。
5. 结语
Nginx是个异常实用软件,部分功能已经超出了通俗的web办事定位,同时它具备开源、轻量、主动化等特点,能有效解决实际工作中很独特别场景的需求,祝Nginx在全球的份额持续攀升~
【编辑推荐】
推荐阅读
年前最后一场技巧盛宴 | 1月27日与京东、日记易技巧大年夜咖畅聊智能化运维成长趋势! 谈及容器技巧,毫不夸大地说,2017年是“Kubernetes之年”。Kubernetes自2014年推出以来,>>>详细阅读
本文标题:谈谈那些实用的Nginx规则
地址:http://www.17bianji.com/lsqh/40297.html
1/2 1