Nginx常用配置
1、location匹配先后顺序
说明:
= 表示精确匹配,如果找到,立即停止搜索并立即处理此请求。
~ 表示执行一个正则匹配,区分大小写匹配
~* 表示执行一个正则匹配,不区分大小写匹配
!~ 区分大小写不匹配
!~* 不区分大小写不匹配
^~ 即表示只匹配普通字符(空格)。使用前缀匹配,^表示“非”,即不查询正则表达式。如果匹配成功,则不再匹配其他location
/ 表示通用匹配,任何请求都会匹配到
2、GZIP压缩
gzip on;
gzip_min_length 1k;
gzip_buffers 8 32k;
gzip_comp_level 2; # 指定gzip压缩比,1最小,9最大,压缩比越大越消耗CPU资源
gzip_http_version 1.1; # 压缩版本默认是1.1
gzip_types text/plain text/css application/xml application/x-javascript application/javascript application/json;
3、 URL limit限速
主配置文件nginx.conf:
map $limited $limit {
0 $binary_remote_addr;
1 "";
}
limit_req_zone $limit zone=loginlimit:10m rate=10r/m; #每6秒一个请求,比如:6r/m,每10秒放进来一个请求,按平均算
域名配置location:
location / {
limit_req zone=loginlimit;
proxy_pass http://xxxxxxxx.backend;
}
4、反向代理
upstream xxx_backend {
server 172.168.100.11:8080;
server 172.168.100.12:8080;
}
server {
server_name xxx.example.com;
location / {
proxy_pass http://xxx_backend;
}
}
5、正向代理
upstream xxx_backend {
server 180.101.49.12:80;
}
server {
server_name xxx.example.com;
proxy_connect_timeout 90s;
proxy_read_timeout 100s;
proxy_send_timeout 90s;
location / {
proxy_set_header Host "www.baidu.com";
proxy_pass http://xxx_backend;
}
}
6、静态资源
server {
server_name static.example.com;
root /data/static.example.com/default/; #nginx上静态资源对应存储路径
try_files $uri $uri/ /index.html;
index index.html index.htm index.jsp;
}