【问题标题】:nginx proxy_pass / locationnginx proxy_pass / 位置
【发布时间】:2016-08-26 23:06:30
【问题描述】:
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 端的静态内容和后端的页面

【问题讨论】:

    标签: nginx proxypass


    【解决方案1】:

    当您尝试访问被禁止的文件时出现错误 403。

    我不能完全理解你的问题,但如果你担心 403 错误,你必须检查一些权限,可能是 localhost:9110 项目文件夹中的索引文件(如你在 nginx 中定义的)。

    我建议您为您的服务器块打开访问日志,并检查它们(do tail -f)以在您访问 http://site/ 时找到正在访问的文件并提供适当的权限(使用 chmod)那个文件。

    【讨论】:

      【解决方案2】:

      你有两个选择...

      通过从 try_files 语句中删除 $uri/ 子句来停止测试是否存在静态目录:

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

      【讨论】:

        猜你喜欢
        • 2020-06-09
        • 2018-02-21
        • 1970-01-01
        • 2017-01-17
        • 2014-10-17
        • 2012-12-31
        • 1970-01-01
        • 1970-01-01
        • 2012-10-02
        相关资源
        最近更新 更多