# nginx配置
记录常用、踩坑的Nginx配置内容
# events
# http
# upstream
upstream指令主要用于负载均衡,设置一系列的后端服务器
# server
server块的指令主要用于指定主机和端口
# location
location块用于匹配网页位置
# 匹配规则
location支持正则表达式匹配,也支持条件判断匹配
语法规则:location [=|~|~*|^~] /uri/ { … }
=
:完全精确匹配^~
:表示uri以某个常规字符串开头,理解为匹配url路径即可,nginx不对url进行编码~
:表示区分大小写的正则匹配~*
:表示不区分大小写的正则匹配!~
:区分大小写不匹配!~*
:不区分大小写不匹配/
:通用匹配,优先级最低
匹配顺序:=
最高,正则匹配其次(按照规则顺序),通用匹配/
最低,匹配成功时停止匹配按照当前规则处理请求
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
# 匹配所有扩展名以.gif、.jpg、.jpeg、.png、.bmp、.swf结尾的静态文件
root /wwwroot/xxx;
# expires用来指定静态文件的过期时间,这里是30天
expires 30d;
}
1
2
3
4
5
6
2
3
4
5
6
location ~ ^/(upload|html)/ {
# 匹配所有/upload /html
root /web/wwwroot/www.cszhi.com;
expires 30d;
}
1
2
3
4
5
2
3
4
5
# root和alias区别
- alias指定的是准确目录,且最后必须是
/
,否则就会访问失败 - root是指定目录的上级目录
location /abc/ {
root /wwwroot/aaa;
# 此规则匹配的最终资源路径为/wwwroot/aaa/abc/
# 如果访问的是/abc/a.html,则最终访问的资源是服务器中的/wwwroot/aaa/abc/a.html
index index.html;
}
location /abc/ {
alias /wwwroot/aaa/;
# 此规则匹配的最终资源路径为/wwwroot/aaa/
# 如果访问的是/abc/b.txt,则最终访问的资源是/wwwroot/aaa/b.txt
index index.html;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13