[英]Nginx/Flask/Python App, Nginx throwing 502 Bad Gateway Error
Nginx
was working fine before, then I added a form
to my html
and nginx started throwing this 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"
My forms.py looks like: 我的forms.py看起来像:
from flask_wtf import FlaskForm
from wtforms import TextField, StringField, SubmitField, validators
class EmailForm(FlaskForm):
email = TextField("Email")
submit = SubmitField("Send")
my app.py looks like: 我的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 (in templates/
): index.html (在templates/
):
<form action="{{ url_for('email') }}" method="post">
{{ form.hidden_tag() }}
{{ form.email }}
{{ form.submit }}
</form>
nginx config in sites-enabled/
: 在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/;
}
}
I've looked tirelessly at this, but cant seem to pinpoint the problem. 我不知疲倦地看着这个,但似乎无法确定问题所在。 Does anyone see what I'm doing wrong here? 有谁看到我在这里做错了什么?
Thank you. 谢谢。
"Connection refused" means that Nginx does not find anything listening on localhost, port 8001. Maybe your flask app is listening on another port. “拒绝连接”意味着Nginx没有找到任何侦听localhost,端口8001的内容。也许你的烧瓶应用程序正在侦听另一个端口。 By default flask listens on port 5000. 默认情况下,flask会侦听端口5000。
You could either try: 你可以尝试:
proxy_pass http://localhost:5000;
修改nginx conf: proxy_pass http://localhost:5000;
app.config['SERVER_NAME'] = "127.0.0.1:8001"
或者让烧瓶应用监听端口8001: app.config['SERVER_NAME'] = "127.0.0.1:8001"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.