我是新来的,只使用nginx来提供静态文件。 我现在已经安装了烧瓶和gunicorn。 如果我运行gunicorn -b 127.0.0.2:8000 hello:app
,然后从服务器wget它运作良好。 但是,如果我尝试从浏览器访问它,它将返回一个404错误(我正在运行一个服务器上运行这个服务器,该服务器上有一个位于root的wordpress站点)。
烧瓶应用程序:
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()
和我的nginxconfiguration的相关部分:
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中服务我的烧瓶应用程序:
运行使用套接字守护进程的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; } } } }