[英]Nginx/Flask/Python App, Nginx throwing 502 Bad Gateway Error
Nginx
以前工作正常,然后我在我的html
添加了一個form
,nginx開始拋出這個錯誤:
2016/12/12 16:37:24 [error] 983#0: *3 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xxx.xxx.xxx, server: site.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8001/", host: "site.com"
我的forms.py看起來像:
from flask_wtf import FlaskForm
from wtforms import TextField, StringField, SubmitField, validators
class EmailForm(FlaskForm):
email = TextField("Email")
submit = SubmitField("Send")
我的app.py看起來像:
from flask import Flask, render_template, request
from flask_mail import Mail, Message
from forms import EmailForm
app.config['DEBUG'] = True
app = Flask(__name__)
app.secret_key = 'secrets'
# add mail server config
app.config['MAIL_SERVER'] = 'site.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_USERNAME'] = 'contact@site.com'
app.config['MAIL_PASSWORD'] = 'pass'
mail = Mail(app)
@app.route('/', methods=('GET', 'POST'))
def email():
form = EmailForm()
if request.method == 'POST':
if form.validate() == False:
return 'Please fill in all fields <p><a href="/">Try Again</a></p>'
else:
msg = Message("Message from your visitor",
sender='contact@site.com',
recipients=['contact@site.com'])
msg.body = """
From: %s <%s>,
%s
""" % (form.email.data)
mail.send(msg)
return "Successfully sent message!"
elif request.method == 'GET':
return render_template('index.html', form=form)
if __name__ == '__main__':
app.run()
index.html (在templates/
):
<form action="{{ url_for('email') }}" method="post">
{{ form.hidden_tag() }}
{{ form.email }}
{{ form.submit }}
</form>
在sites-enabled/
nginx配置:
server {
server_name mysite.com;
listen 80;
location / {
proxy_pass http://localhost:8001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /static {
alias /home/www/flask-deploy/mysite/static/;
}
}
我不知疲倦地看着這個,但似乎無法確定問題所在。 有誰看到我在這里做錯了什么?
謝謝。
“拒絕連接”意味着Nginx沒有找到任何偵聽localhost,端口8001的內容。也許你的燒瓶應用程序正在偵聽另一個端口。 默認情況下,flask會偵聽端口5000。
你可以嘗試:
proxy_pass http://localhost:5000;
app.config['SERVER_NAME'] = "127.0.0.1:8001"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.