除“/”之外的所有路由都从运行 Flask WSGI 的 Nginx 返回 404

除“/”之外的所有路由都从运行 Flask WSGI 的 Nginx 返回 404

我有一个flaskapp,使用 nginx 作为代理服务器和 gunicorn 进行部署。我在 Flask python 脚本中定义了几条路由,但它们都无法访问。

然而,当使用开发服务器时,它们运行良好。

除基本 URL(“/”)之外的所有路由都返回 404 nginx 页面,因此我假设 nginx 存在问题,但是我没有找到任何可以帮助我解决该问题的方法。

如何配置 nginx 来接受这些路由并使用 flaskApp 中定义的路由?

答案1

这是因为您没有在 nginx 配置中定义所有路由,您应该有类似下面示例的内容,只是您应该更改server_nameports

注意:我正在使用此代码片段将 nginx 连接到其他容器,因此考虑将 http://client:80; 更改为您的本地主机或应用程序名称,并对所有路由执行相同的操作。

主要思想是定义所有路线。

http {

         server {
             
            listen 80;
            server_name localhost 127.0.0.1;

            location / {
                proxy_pass          http://client:80;
                proxy_set_header    X-Forwarded-For $remote_addr;
            }

            location /api/ {
                    # why should i add / at the end 5000/ to make it work 
                proxy_pass          http://api:5000/;
                proxy_set_header    X-Forwarded-For $remote_addr;
            }
            
            location /api/client {
                proxy_pass          http://api:5000/client;
                proxy_set_header    X-Forwarded-For $remote_addr;
            }
}

相关内容