nginx配置文件location路由转发问题?

作者站长头像
站长
· 阅读数 8

本来服务端已经全部做好了,通过IP地址即可访问,突然收到通知说要在IP后面加/xxxx,也就是通过访问"IP地址/xxxx"来实现原先访问"IP地址"的功能,我的nginx配置文件中location块如下:

    location / {
    try_files $uri $uri/ /index.html;
    proxy_buffer_size 64k; 
    proxy_buffers 32 32k;
    proxy_busy_buffers_size 128k;
   }

location /xxxx {

root /var/www/html;
index index.html;
try_files $uri $uri/ /xxxx/index.html;

}

然后我把/var/www/html的文件转移到/var/www/html/xxxx中了,但是我访问"IP地址/xxxx"的时候,仍然尝试在/var/www/html下寻找index.html文件,为什么呢?

回复
1个回答
avatar
test
2024-07-07

第一 这不是PHP的配置文件,是Nginx的配置文件

第二 你的ROOT 指向是/var/www/html; 所以它只会在这个查找这个目录下的文件,

不知道当年有没有接触过IIS,有个名词叫 “虚拟目录”,你所设定的xxxx就是一个“虚拟目录” 并不需要和本地磁盘目录对应,try_files $uri $uri/ /xxxx/index.html;

try_files 按指定的file顺序查找存在的文件,并使用第一个找到的文件进行请求处理,只有在没找到的时候才会重新请求最后一个参数给定的uri,就是新的location匹配

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容