Nginx提供静态文件,但不提供Flask应用程序

时间:2020-08-05 21:36:21

标签: nginx flask webserver gunicorn plotly-dash

在mydomain.com上,Nginx正在提供静态页面index.html,这是我想要的。我希望在mydomain.com/app上通过gunicorn提供Flask应用。这是失败的。为了响应我尝试的各种配置,我得到了错误的网关或404。下面是对我来说似乎最合理的配置,并返回404 Not Found。我怀疑某个地方的目录未正确排列。请指出我错了。

我的index.html位于/ var / www / html中。

我的烧瓶应用api_app.py,连接器文件connector.py和api_app.sock位于/ var / www / app中。

烧瓶应用程序路由为@ app.route('/ app')。

系统化api_app.service工作目录为/ var / www / app。

Nginx mydomain.com配置位置“ /”具有根/ var / www / html;

Nginx mydomain.com配置位置/ app具有proxy_pass http:// unix:/var/www/app/api_app.sock;

/etc/systemd/system/api_app.service:

    [Unit]
    Description=Gunicorn instance to serve One
    After=network.target
        
    [Service]
    User=root
    Group=www-data
    WorkingDirectory=/var/www/app
    Environment="PATH=/home/user/anaconda3/envs/appserver/bin"
    ExecStart=/home/user/anaconda3/envs/appserver/bin/gunicorn --workers 3 --bind unix:api_app.sock -m 007 connector:app
        
    [Install]
    WantedBy=multi-user.target

/etc/nginx/sites-enabled/mydomain.com:

    server {
        location / {
            root /var/www/html;
        }
        location /app {
            include proxy_params;
                proxy_pass http://unix:/var/www/app/api_app.sock;
        }
    }

/var/www/app/api_app.py:

    from flask import Flask
    app = Flask(__name__)
    @app.route("/app")
    def hello_world():
        return "Hello World"
    if __name__ == "__main__":
        app.run(host='0.0.0.0')

这里有很多类似的问题,但是它们似乎都与使用Flask提供静态页面有关,这似乎不太理想。实际上,Flask自己的指南指出:“理想情况下,您的Web服务器已配置为为您提供[静态内容] ...”,他们似乎也在“ /”位置运行其应用程序,而在其他位置运行静态内容,而我想相反。帮助将不胜感激!

0 个答案:

没有答案
相关问题