我是新来的,仅使用nginx提供静态文件。我现在已经安装了flask and gunicorn。如果我运行gunicorn -b 127.0.0.2:8000 hello:app,然后从服务器中获取它,它将运行良好。但是,如果尝试从浏览器访问它,它将返回404错误(我正在托管位于root用户的wordpress网站的服务器上运行此错误)。
gunicorn -b 127.0.0.2:8000 hello:app
Flask应用程序:
from flask import Flask from werkzeug.contrib.fixers import ProxyFix app = Flask(__name__) @app.route('/') def hello(): return "Hello world!" app.wsgi_app = ProxyFix(app.wsgi_app) if __name__ == '__main__': app.run()
以及我的nginx配置的相关部分:
location /flask { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_\ for; proxy_pass http://127.0.0.2:8000; proxy_redirect off; }
我希望这是所有相关信息。如果没有,请告诉。谢谢!
这就是我在Nginx中提供我的Flask应用程序的方式:
使用套接字运行守护进程gunicorn:
sudo gunicorn app:app --bind unix:/tmp/gunicorn_flask.sock -w 4 -D
相关的nginx配置:
upstream flask_server { # swap the commented lines below to switch between socket and port server unix:/tmp/gunicorn_flask.sock fail_timeout=0; #server 127.0.0.1:5000 fail_timeout=0; } server { listen 80; server_name www.example.com; return 301 $scheme://example.com$request_uri; } server { listen 80; client_max_body_size 4G; server_name example.com; keepalive_timeout 5; # path for static files location /static { alias /path/to/static; autoindex on; expires max; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://flask_server; break; } } } }