通过Nginx提供静态文件时如何修复404错误

时间:2019-11-01 22:43:35

标签: nginx

我必须运行使用flask和nginx作为反向代理的应用程序。我在/birthday/位置提供静态文件时遇到问题。

location /{
    proxy_pass http:127.0.0.1:6060;
}

出现问题的应用是。

 location /birthday/
 {
     proxy_pass http:127.0.0.1:6061;
 }

我已经厌倦了以下内容。

 location /birthday/{
   root /var/www/birthday_app/static;
   try_files $uri @bday
 }
 location @bday{
    proxy_pass http:127.0.0.1:6061;
  }

服务http://127.0.0.1/birthday/static/image.png时,我找不到状态。如何修复生日应用程序以提供静态文件。

1 个答案:

答案 0 :(得分:1)

因此URI /birthday/static/image.png指向/var/www/birthday_app/static/image.png处的文件吗?在这种情况下,不能单独使用root。您将需要使用rewrite...breakalias

此外,如果以/birthday/static/开头的URI提供静态文件,而以/birthday/开头的所有其他URI反向代理上游,则可以将配置分为两个location块。

例如:

location /birthday/static/ {
    alias /var/www/birthday_app/static/;
}
location /birthday/ {
    proxy_pass http://127.0.0.1:6061;
}

locationalias的值都应以/结尾或都不以/结尾。有关详细信息,请参见this document

URI /birthday/foo将在未经修改的情况下被上游传递到http://127.0.0.1:6061/birthday/foo。如果您需要将URI映射到http://127.0.0.1:6061/foo,请在/语句后添加尾随proxy_pass。有关详细信息,请参见this document