nginx proxy_pass /位置

时间:2016-08-26 23:06:31

标签: nginx proxypass

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端的静态内容和后端的页面

2 个答案:

答案 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的静态文件引起的。