location / {
root $root_path;
try_files $uri $uri/ @gosite;
expires max;
access_log off;
}
location @gosite {
proxy_pass http://localhost:9110;
}
当我来http://site/时,我得到403,当用户进入/页面时,我怎么能进行proxy_pass(在后端,页面处理程序在“/”上工作)?
如果uri喜欢/ detail,一切正常,nginx端的静态内容和后端的页面
答案 0 :(得分:0)
当您尝试访问禁用文件时,会出现错误403。
我无法完全理解您的问题,但如果您担心403错误,则必须签出一些权限,可能是localhost:9110的项目文件夹中的索引文件(如您在nginx中定义的那样)。
我建议您为服务器块打开访问日志,并在访问http://site/时检查它们(执行tail -f)以查找正在访问的文件并提供适当的权限(使用chmod )到那个文件。
答案 1 :(得分:0)
你有两个选择......
通过从$uri/
语句中删除try_files
子句来停止测试是否存在静态目录:
location / {
...
try_files $uri @gosite;
...
}
location @gosite {
proxy_pass http://localhost:9110;
}
或者,为URI /
添加特定位置:
location / {
...
try_files $uri $uri/ @gosite;
...
}
location @gosite {
proxy_pass http://localhost:9110;
}
location = / {
proxy_pass http://localhost:9110;
}
很明显,$uri/
子句与index
directive一起使用很有用。如果您不使用静态index.html
文件(或类似文件),则可能不需要$uri/
子句。
403错误是由文档根目录中没有名为index.html
的静态文件引起的。