常用配置
client_max_body_size 20m
设置请求体大小,避免在文件上传等场景中,出现413 Request Entity Too Large
Nginx转发端口
常规转发
1 | server { |
根据来源ip转发
1 | server { |
同时匹配多个ip (使用管道)
1 | server { |
限制某些ip的访问,使用 allow/deny
譬如在对公网提供接口进行调试的时候,就可以对来源ip进行鉴别和筛选,只能用指定的ip(或ip段)进行访问,其他的都拒绝,从而保证在公网环境下的测试安全问题,可以充当简单的防火墙
allow 后面可以接具体的 ip 地址,也可以接 CIDR来允许一整个网段的访问
1 | server { |
或者根据需求,处理网段也可以直接用 正则表达式
关于allow/deny指令序列的处理顺序
The rules are checked in sequence until the first match is found – Nginx Doc
allow 和 deny 的指令序列会按照从上到下常识匹配,匹配到就执行
所以如果把deny all
移到最上面,那后面的规则都不会执行,所有请求都会被拒绝, allow all
同理
连接限速
限速指令
limit_rate
示例
1 | server { |
限速是针对请求的,如果客户端同时对该 server 发起两个请求,那客户端的实时传输速度是400k
适用上下文: http
, server
, location
, location 中的 if
如本例就是用在 server 上下文中的,生效范围是进入该 server 的请求
nginx 平滑升级和回退
使用 kill -USER2 [nginx master pid] 来通知nginx主进程,我们需要使用新的环境来启动nginx, 并接管当前所有请求
使用 kill -WINCH [nginx old master pid] 来通知之前老的 worker 进程退出,但保留老的 master 进程,以保障在需要的时候还可以重新拉起老的进程接管当前服务
自动生成 index 页面
在静态资源共享的过程中,用户有时需要像访问自己的文件系统一样,能查看当前目录的结构,文件列表
使用 autoindex: on
可以自动生成这样的一组页面
◉ End.
参考资料:
如博文有叙述不妥以及不准确的地方, 望各位看客不吝赐教, 感谢.