nginx 配置(nginx详细配置教程)
nginx 配置(nginx详细配置教程),本文通过数据整理汇集了nginx 配置(nginx详细配置教程)相关信息,下面一起看看。
语法:location [=||| ~ *|]/uri/{…}
=开头表示完全匹配
~开头是指uri以常规字符串开头,可以理解为匹配url路径。Nginx不编码url,所以请求是/static/20%/aa,可以用规则^~ /static//aa(注意是空格)匹配。
~开头表示区分大小写的常规匹配。
~ *以不区分大小写的常规匹配开始。
!~还有!~ *分别是区分大小写和不区分大小写的不匹配。
/通用匹配,任何请求都会被匹配。
在多位置配置的情况下,匹配顺序是(来自参考资料,没有经过实际验证,随便试试,don # t坚持,仅供参考):
第一次匹配=,第二次匹配~,按照文件中的顺序第二次常规匹配,最后给/常规匹配。当匹配成功时,停止匹配,并根据当前匹配规则处理请求。
例如,有以下匹配规则:
位置=/{
#规则A
}
location=/login {
#规则B
}
位置^~/静态/{
#规则C
}
位置~。(gif|jpg|png|js|css)$ {
#规则D
}
位置~*。巴布亚新几内亚$ {
#规则E
}
位置!~ .xhtml$ {
#规则F
}
位置!~* .xhtml$ {
#规则g
}
位置/{
#规则h
}
那么效果如下:
对根目录/的访问,比如http://localhost/,将匹配规则a。
对http://localhost/login的访问将匹配规则B,而http://localhost/register将匹配规则h。
对http://localhost/static/a.html的访问将匹配规则c。
访问http://localhost/a.gif,3358localhost/b.jpg会匹配规则D和规则E,但规则D优先,规则E不t工作,http://localhost/static/c.png首先匹配规则C。
对http://localhost/a.PNG的访问匹配规则E,但不匹配规则D,因为规则E不区分大小写。
访问http://localhost/a.xhtml将不匹配规则F和规则G,http://localhost/a.XHTML将不匹配规则G,因为它不区分大小写。规则f,规则g属于排除法,符合匹配规则但可以不匹配,所以想想实际应用中会用到哪里。
访问http://localhost/category/id/1111最终匹配规则H,因为上面的规则都不匹配。这时nginx要把请求转发给后端的应用服务器,比如FastCGI(php)、tomcat(jsp),nginx是作为一个方向代理服务器存在的。
所以在实践中,我认为匹配规则至少有三种定义,如下:
#直接匹配网站的根,通过域名访问网站首页的频率更高。官方网站称,使用这个将加快处理速度。
#这个直接转发到后端应用服务器,也可以是静态主页。
#第一个要求的规则
位置=/{
proxy _ pass http://Tomcat:8080/index
}
#第二个需要的规则是处理静态文件请求,这是nginx # 作为http服务器的优势。
#有两种配置模式,目录匹配或后缀匹配。选择一个或一起使用。
位置^~/静态/{
root/webroot/static/;
}
位置~*。(gif|jpg|jpeg|png|css|js|ico)$ {
root/webroot/RES/;
}
#第三个规则是通用规则,用于将动态请求转发到后端应用服务器。
#非静态文件请求默认为动态请求,可以根据实际情况把握。
#毕竟随着目前一些框架的流行,很少有用。php和。jsp后缀。
位置/{
proxy_pass http://tomcat:8080/
}
nginx的其他配置信息介绍
第三,重写语法
最后——基本上都用这面旗。
中断-中止重连线,不再继续匹配。
重定向返回临时重定向302的HTTP状态
永久返回永久重定向301的HTTP状态。
1.下面的表达式可以用来判断:
-f和!-f用于确定文件是否存在。
-d和!-d用于确定目录是否存在。
-e和!-e用于确定文件或目录是否存在。
-x和!-x用于确定文件是否可执行。
2.以下是可用于判断的全局变量
示例:3358 localhost:88/test1/test2/test . PHP
$host:本地主机
$服务器端口:88
更多nginx 配置(nginx详细配置教程)相关信息请关注本站。