在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服务器已配置为为您提供[静态内容] ...”,他们似乎也在“ /”位置运行其应用程序,而在其他位置运行静态内容,而我想相反。帮助将不胜感激!