我有一个非常简单的nginx设置与两个位置块
server { listen 80 default_server; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ =404; } location /more { root /usr/share/nginx/more; index index.html index.htm; try_files $uri $uri/ =404; } }
它应该做的唯一的事情就是从/ usr / share / nginx / html提供第一个位置的文件,从/ usr / share / nginx / more提供第二个位置的文件。
第一个位置按预期工作,但第二个位置继续返回404。
这个问题太简单了,以至于无法在文档或其他问题中出现。 我应该先检查什么?
logging:/ usr / share / nginx / more存在,只包含一个文件,即index.html
我在“/ usr / share / nginx”中的more文件夹和html文件夹之间find的唯一“区别”是权限:
drwxr-xr-x 11 root root 4096 May 25 00:01 html drwxr-xr-x 2 root root 4096 May 25 07:41 more
我知道我的设置重复不必要的行,但我想这不是现在的问题。
试试这个,你会看到魔法:)
location ~* ^/more/ { root /usr/share/nginx/more; index index.html index.htm; try_files $uri $uri/ =404; }