首页 > 网站 > WEB服务 > 正文

nginx关于root与alias的区别

2020-03-22 18:06:07
字体:
来源:转载
供稿:网友
这篇文章主要介绍了关于nginx关于root与alias的区别,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

结论

配置demo:

location xxx { root yyy}

浏览器访问 xxx,实际访问的是 yyy/xxx
浏览器访问 xxx/abc.html,实际访问的是 yyy/xxx/abc.html
浏览器访问 xxx/ccc/abc.html,实际访问的是 yyy/xxx/ccc/abc.html

结论: root属性,会把root的值(这里是yyy)加入到访问路径(locaition)之前

配置demo:

locaiton xxx { # alias必须以 / 结束,否则无效 alias yyy/ }

浏览器访问 xxx,实际访问的是 yyy
浏览器访问 xxx/abc.html,实际访问的是 yyy/abc.html
浏览器访问 xxx/ccc/abc.html,实际访问的是 yyy/ccc/abc.html

结论:alias属性,会把alias的值(这里是yyy)替代访问路径匹配的部分(这里是xxx)示例

nginx的目录结构如下:

nginx/ -html/ -index.html -logs/ - access.log -conf/ -nginx.conf

1) 这种配置,http://localhost:8086/access.log,能看到 nginx/logs/access.log,但就别指望能访问 html目录下的文档了

server { listen 8086; server_name localhost; location / { root logs;}

2) 这种配置,访问 http://localhost:8086/log/access.log,能看到 nginx/logs/access.log;
访问 http://localhost:8086/, 能看到 nginx/html/index.html

server { listen 8086; server_name localhost; location / { root html; index index.html index.htm; # 配置成 location /log/ 或 location /log 都可以 location /log/ { # 不能写成logs, 必须已 / 结束 alias logs/; # 以下配置没用也可以,只是方便你输入 localhost:8086/log/ 后能,看到nginx/logs/目录下的所有文件 autoindex on;}

3) 这种配置,访问 http://localhost:8086/logs/access.log,能看到 nginx/logs/access.log;
访问 http://localhost:8086/, 能看到 nginx/html/index.html

server { listen 8086; server_name localhost; # http://localhost:8086/ 访问的是 # nginx/html/ (然后会自动显示 index.html 或 index.htm,如果存在这两个文件之一) # 啰嗦的注释: nginx/html(html是root的值)/(/是location的值) location / { root html; index index.html index.htm; # http://localhost:8086/logs/ 访问的是 # nginx/./logs/ # .是root的值,logs是location的值 # 请与第4种错误配置进行比较,深入理解root属性 location /logs/ { # 写成./也可以 root .;}

4) 错误的配置

server { listen 8086; server_name localhost; location / { root html; index index.html index.htm; # 这样子配置是错的, 请与第三种配置比较一下 # 关键点:root属性会把root的值加入到最终路径之前 # 即: http://localhost:8086/logs/access.log访问的是: # nginx/logs/logs/access.log # 因为: nginx/logs(root的值)/logs(locaition的值)/access.log, location /logs/ { root /logs/;}

节选:http://www.cnblogs.com/zhang... 这段话:
root属性指定的值是要加入到最终路径的,所以访问的位置变成了 root的值/locaiton的值。而我不想把访问的URI加入到路径中。所以就需要使用alias属性,其会抛弃URI,直接访问alias指定的位置

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP !

相关推荐:

使用XHProf分析PHP性能瓶颈的方法二

Laravel 的 Facade 外观系统的分析

以上就是nginx关于root与alias的区别的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表