[英]Run Flask application with Nginx and Gunicorn
这是我第一次部署 webapp,我真的需要你的帮助。 我想在使用 Nginx 和 Gunicorn 的服务器上运行 Flask Web 应用程序。 我找到了本教程,但我无法正确运行该应用程序。 我也尝试过在互联网上找到的其他方法,但没有。 这是我当前的 /etc/nginx/sites-available/test.conf 文件
server {
listen 80;
server_name hello.itu24.com;
root /home/ubuntu/test;
location / {
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:8000;
}
}
相反,这是我的应用程序 /home/ubuntu/test.py
from flask import Flask
from werkzeug.contrib.fixers import ProxyFix
app = Flask(__name__)
@app.route('/')
def test():
return "Hello world!"
app.wsgi_app = ProxyFix(app.wsgi_app)
if __name__ == '__main__':
app.run()
然后我运行以下命令
ubuntu@ace:~$ sudo service nginx reload
* Reloading nginx configuration nginx [ OK ]
ubuntu@ace:~$ sudo gunicorn -b h 127.0.0.1:8000 test:app
然后如果我去机器的IP地址,因为我是从另一台机器连接的,我可以看到Nginx页面。 但是,如果我在地址 IP:8000 中添加端口,则找不到页面。 我究竟做错了什么?
Nginx 可能有另一个默认端口为 80 的站点。确保您已从/etc/nginx/sites-enabled
删除 default.conf 符号链接。 检查 nginx.conf 以确保其中没有配置服务器。
您的 gunicorn 命令看起来也不完全正确。 您需要使用应用目录中的gunicorn -b 127.0.0.1:8000 test:app
。
您仅将 gunicorn 服务器绑定到本地接口 127.0.0.1,因此无法从外部访问。 您必须使用 nginx 作为端口 80 的反向代理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.