首页 > 解决方案 > 烧瓶 Nginx HTTP/1.1 302 找到

问题描述

我希望每个人都做得很好。很抱歉打扰这个问题,但我尝试了在网上找到的每一个建议和建议,但没有一个对我有用。这就是我所拥有的。

我有一个在 docker 容器中运行的简单博客项目。

使用 Dev 容器我没有任何问题。我的重定向 url 工作得非常顺利。但是问题出现在生产容器上。如果我尝试注册(POST 方法)或上传个人资料图片或写博客,一旦提交网站崩溃并在控制台上显示消息“HTTP/1.1 302 FOUND”,似乎 nginx 无法从任何重定向我的 POST 请求页。

这是我的路由配置和我的 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;

标签: nginxflaskgunicorn

解决方案


推荐阅读