nginx - 烧瓶 Nginx HTTP/1.1 302 找到
问题描述
我希望每个人都做得很好。很抱歉打扰这个问题,但我尝试了在网上找到的每一个建议和建议,但没有一个对我有用。这就是我所拥有的。
我有一个在 docker 容器中运行的简单博客项目。
- 用于开发环境的 Docker 容器(flask 和 Postgres)
- 生产环境Docker容器(Flask + gunicorn + nginx)
使用 Dev 容器我没有任何问题。我的重定向 url 工作得非常顺利。但是问题出现在生产容器上。如果我尝试注册(POST 方法)或上传个人资料图片或写博客,一旦提交网站崩溃并在控制台上显示消息“HTTP/1.1 302 FOUND”,似乎 nginx 无法从任何重定向我的 POST 请求页。
这是我的路由配置和我的 nginx 配置。
- NGINX
upstream blog {
server web:5000;
}
server {
listen 80;
location / {
proxy_pass http://blog;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
client_max_body_size 5M;
proxy_redirect off;
}
}
- 路线配置
users = Blueprint('users', __name__)
@users.route("/register", methods=['GET', 'POST'])
def register():
if current_user.is_authenticated:
return redirect(url_for('main.home'))
form = RegistrationForm()
if form.validate_on_submit():
hashed_password = bcrypt.generate_password_hash(
form.password.data).decode('utf-8')
user = User(username=form.username.data,
email=form.email.data, password=hashed_password)
db.session.add(user)
db.session.commit()
flash('Your account has been created succesfully', 'success')
return redirect(url_for('users.login'))
return render_template('register.html', title='Register', form=form)
@users.route("/login", methods=['GET', 'POST'])
def login():
if current_user.is_authenticated:
return redirect(url_for('main.home'))
form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(email=form.email.data).first()
if user and bcrypt.check_password_hash(user.password, form.password.data):
login_user(user, remember=form.remember.data)
next_page = request.args.get('next')
return redirect(next_page) if next_page else redirect(url_for('main.home'))
else:
flash('Login Unsuccessful. Please check your e-mail and/or password', 'danger')
return render_template('login.html', title='Login', form=form)
我希望我提供了足够的信息来帮助您理解我的问题,并提前感谢您的帮助
更新 我找到了我的麻烦 XD 的根源并想分享解决方案。在我的具体情况下,我在这里遇到了问题:
proxy_set_header Host $host;
我将其更改为:
proxy_set_header Host $http_host;
解决方案
推荐阅读
- laravel - 有什么方法可以显示来自 api 的数据吗?
- c - 尝试读取文件时出现分段错误
- c# - 激活另一个单选按钮时清除一个单选按钮的组合框
- ruby-on-rails - 在查询中包含来自另一个表的列(rails activerecord)
- angular - 部署角度和弹簧启动应用程序的问题
- assembly - 理解 x86-64 调用操作数
- c# - 根据 WPF XAML 中的 IsChecked 属性更改 CheckBox 样式
- android - 重复构建失败“要使用协程功能,您必须添加`ktx`.......”
- sql - 使用 MSSQL 和 .Net Core 避免实体框架中的重复条目
- python - 类继承:错误说对象没有属性