设为首页 收藏本站
查看: 1281|回复: 0

[经验分享] nginx路由文件配置

[复制链接]

尚未签到

发表于 2017-12-22 23:46:37 | 显示全部楼层 |阅读模式
  nginx中文文档
  Nginx 的请求处理有多个阶段,比如说rewrite、access、content等等,不同的配置字段属于不同的配置阶段,不同阶段的先后执行顺序不一样,例如rewrite在content阶段前面,就算你content阶段的内容在前面,也一样是rewrite先生效。
  其中content阶段(根据URI查找内容)主要有index、autoindex、static三个先后次序。

匹配特性

贪婪原则
  尽可能长的匹配路由。例如下面的配置,当访问路径/images/时,其实也会匹配到第一条规则,所以,长路径优先匹配。
  

server {  location / {
  root /data/www;
  }
  

  location /images/ {
  root /data;
  }
  
}
  

代理配置
  简单的代理案例如下:
  

server {  listen 8080;//默认端口80
  root /data/upl;//所有路径导入到/data/upl下
  //proxy_pass字段用于表示代理
  location / {
  proxy_pass http://localhost:8080;
  }
  //~用于通配
  location ~ \.(gif|jpg|png)$ {
  root /data/images;
  
}
  
}
  

  同时可以设置FastCGI代理,主要配置参数有fastcgi_pass,fastcgi_param等。
  更多具体的代理配置参考文档Module ngx_http_proxy_module

常用字段解析


  •   ssi:服务器端嵌入,默认配置为off,当配置为on的时候,服务器在将html发送到浏览器之前会先解析,然后将文件中的ssi指令解析,解析执行后的html会发送给浏览器(常见的主要有include文件等等)。

  •   alias与root:root匹配是在制定目录地址下匹配,匹配结果为path/uri,alias是在会用制定内容替换掉匹配的路径。例如下例:

  

location ~ ^/weblogs/ {  root /data/weblogs/abc;
  
}
  
location ~^/test/ {
  alias /data/static/
  
}
  

  当请求的URI是/weblogs/index/a.html时,那么实际定位到的地址是/data/weblogs/abc/weblogs/index/a.html;
  
当请求的URI是/test/ddd/a.html时,那么实际定位的地址是/data/static/ddd/a.html。
  Notice:



  • 使用alias时,目录名后面一定要加"/"。
  • alias可以指定任何名称。
  • alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
  • alias只能位于location块中。


  • index: 该指令通常用于指定首页文件,当在匹配location下找到index指定的文件时,会进行内部rewrite跳转,然后根据跳转后的新地址进行匹配location,否则放弃处理,交给下一阶段模块处理。  
    例如:

  

    location / {  root /var/www/;
  index index.html;
  }
  location /index.html {
  set $a 32;
  echo "a = $a";
  }
  

  假设求情的URI为/,首先根据location,index配置生效,然后rewrite地址为/index.html,接着根据location配置,贪婪原则,首先匹配到/index.html然后输出a = 32。

参考文献


  • nginx中文文档
  • Module ngx_http_proxy_module
  • Nginx配置指令的执行顺序(七)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-427023-1-1.html 上篇帖子: Nginx 主要应用场景 下篇帖子: Nginx的location配置规则梳理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表