当前位置:首页 > nginx > 正文

nginx三种转发策略

  • nginx
  • 2024-06-03 06:48:47
  • 1844

I、Nginx配置转发
位置匹配规则
语法
模式含义
Location=/uri=表示精确匹配,只有完全匹配才生效
以location^~/开头uri^~对URL路径和正则表达式之前进行前缀匹配。
Sitestart~pattern表示常规不区分大小写匹配
Sitestart~*pattern表示常规不区分大小写匹配
Site/URI不包含任何修饰符,也表示前缀和with即之后正常匹配
一般站点/匹配,任何不匹配其他站点的请求都会被匹配,相当于匹配Nginx中的默认前缀URL没有加密,所以请求为/static/20%/aa,如果是多个,可以通过规则^~/static//aa(注意空格)
进行匹配。 站点配置,匹配顺序是(参考资料来吧,还没验证,试试就知道了。 别太严格,仅供参考):
注意:前缀匹配,如果存在封装关系,将会按照最大匹配原则进行匹配。 比如前缀匹配:location/dir01和location/dir01/dir02,如果有http://localhost/dir01/dir02/file的请求,最终会匹配location/dir01/dir02
匹配规则示例如下:
location=/{
echo"RuleA";
location=/login{
。 echo"BaseB";
位置^~/static/{
echo"BaseC";
位置^~/static/files{
echo"Ruleimg{
echo"RuleY";
location/{
echo"RuleF";
然后效果如下:
访问http://localhost/category/id/1111最终会匹配规则F。 由于上述规则都不匹配,Nginx必须向后转发请求-目前后端应用服务器,如FastCGI(php)、tomcat(jsp)和Nginx都作为反向代理服务器存在。
所以,在实际使用中,我认为匹配规则至少有三种定义,如下:
location=/{
proxy_passhttp://tomcat:8080/index
位置^~/static/{
root/webroot/static/;
位置~*。 (gif|jpg|jpeg|.png|css|js|ico)${
root/webroot/res/;
location/{
proxy_passhttp://tomcat:8080/
改写句子
1.可以用以下表达式来判断:
2可以用全局变量来判断
重定向语法
server{
listen80;
server_namestart.igrow.cn;
indexindex.htmlindex.php;
roothtml;
if("){
重写^(.*)http://star.igrow.cn$1redirect;
防盗链
站点~*.(gif|jpg|swf)invalid_referer){
rewrite^/http://$host/logo/vccvps.com.png;>
根据文件类型调整过期时间
location~*.(js|css|jpg|jpeg|gif|png|swf)request_filename){
expires1h;
break;
阻止访问目录
location~*.(txt|doc)${
root/data/www/wwwroot/linuxtone/test;
denyall;
参考文档链接