我還是很新的Flask/Nginx/Gunicorn,因爲這只是我第二個使用這個組合的站點。我創建了一個基於Miguel Grinberg的tutorial的網站,因此我的文件結構與本教程完全相同。Nginx,Flask,Gunicorn 502錯誤
在我以前的瓶的應用程序,我的應用程序是在一個名爲app.py
這樣一個文件,當我用Gunicorn我只是叫
gunicorn app:app
現在,我的新的應用程序分爲我用一個文件中的多個文件run.py
開始應用程序,但我不知道我現在應該怎麼打電話給Gunicorn。我已閱讀其他問題和教程,但他們沒有奏效。當我運行gunicorn run:app
並嘗試訪問站點時,出現502錯誤網關錯誤。
我覺得我的問題比Nginx或Flask更加Gunicorn,因爲如果我只鍵入./run.py
,網站就可以工作。無論如何,我已經在下面包含了我的Nginx配置和一些其他文件。非常感謝你的幫助!
文件:run.py
#!flask/bin/python
from app import app
from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)
app.run(debug = True, port=8001)
文件:app/views.py
from app import app
@app.route('/')
@app.route('/index')
def index():
posts = Post.query.order_by(Post.id.desc()).all()
return render_template('index.html', posts=posts)
文件:nginx.conf
server {
listen 80;
server_name example.com;
root /var/www/example.com/public_html/app;
access_log /var/www/example.com/logs/access.log;
error_log /var/www/example.com/logs/error.log;
client_max_body_size 2M;
location/{
try_files $uri @gunicorn_proxy;
}
location @gunicorn_proxy {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:8001;
}
}
您是否檢查過您可以訪問http://127.0.0.1:8001?然後 - 我將「location @ gunicorn_proxy」更改爲「location /」(並註釋掉以前的位置部分) – soerium 2014-10-06 07:40:36
@soerium我可以訪問127.0.0.1:8001,因爲當我從命令行運行我的應用程序時,Flask會打印'* Running在http://127.0.0.1:8001'上。 – Connie 2014-10-06 17:17:20