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

[经验分享] nginx配置 location root

[复制链接]

尚未签到

发表于 2017-12-22 20:57:33 | 显示全部楼层 |阅读模式
  https://jasonhzy.github.io/2016/08/25/nginx-alias-root/
  http://blog.csdn.net/21aspnet/article/details/6583335
  nginx指定文件路径有两种方式root和alias,root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。

最基本的区别
  alias 指定的目录是准确的,给location指定一个目录。
  root 指定目录的上级目录,并且该上级目录要含有locatoin指定名称的同名目录
  以root方式设置资源路径:
  

语法: root path;  
配置块: http、server、location、if
  

  

  以alias 方式设置资源路径
  

语法: alias path;  
配置块: location
  

  

  Example:
  

location /img/ {  alias /var/www/image/;
  }
  #若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件
  location /img/ {
  root /var/www/image;
  }
  #若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件
  

  注意:
  

1.使用alias时,目录名后面一定要加”/“。  
2.使用alias标签的目录块中不能使用rewrite的break。
  
3.alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
  
4.alias只能位于location块中
  

  

配置alias支持PHP fastcgi解析
  

location /app {  alias /project/app/;
  index index.php;
  location ~ \.php$ { #方案一
  fastcgi_pass 127.0.0.1:9100;
  fastcgi_index  index.php;
  include fastcgi.conf;
  }
  }
  #location ~ /app/.+\.php$ { #方案二
  #rewrite /app/(.+\.php) /$1 break;
  #include fastcgi.conf;
  #fastcgi_pass 127.0.0.1:9100;
  #fastcgi_index index.php;
  #fastcgi_param SCRIPT_FILENAME /project/app/$fastcgi_script_name;
  #}
  

  ===============
  nginx貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。
  如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较“像”,干脆来说说alias标签和root标签的区别吧。
  最基本的区别:alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录。另外,根据前文所述,使用alias标签的目录块中不能使用rewrite的break。
  所以使用nginx设置root时要注意一个问题,就是如果该root设置的前端目录不是根目录,那么在写root的绝对地址时,要把前端目录的部分省略掉。
  我们用设置虚拟目录指向的alias来和root比较一下就非常明显了
  location /abc/ {     alias /home/html/abc/; }  
  在这段配置下,http://test/abc/a.html就指定的是 /home/html/abc/a.html。这段配置亦可改成
  location /abc/ {     root /home/html/;}  
  可以看到,使用root设置目录的绝对路径时,少了/abc,也就是说,使用root来设置前端非根目录时,nginx会组合root和location的路径,即 /home/html/abc/。
  另外,使用alias时目录名后面一定要加“/”

运维网声明 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-426966-1-1.html 上篇帖子: Nginx 实现端口转发 下篇帖子: 用nginx搭建http/rtmp/hls协议的MP4/FLV流媒体服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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