Lorsque vous utilisez Nginx pour proxy l'application flask démarrée par Gunicorn, la redirection ignore-t-elle le port ?
ringa_lee
ringa_lee 2017-05-16 17:09:30
0
1
663

Le serveur Gunicorn fonctionne sur le port 8000. Nginx écoute sur 443. . .

server {
        listen 443;
        server_name _;

        location / {
                proxy_pass http://127.0.0.1:8000;
                proxy_redirect     off;
                proxy_set_header   Host                 $host;
                proxy_set_header   X-Real-IP            $remote_addr;
                proxy_set_header   X-Forwarded-For      $proxy_add_x_forwarded_for;
                proxy_set_header   X-Forwarded-Proto    $scheme;
        }

        location /static {
                alias /home/tiweb/SecPostsWeb/app/static;
        }

Utilisation d'un plan, divisé en principal et auth

from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from .auth import auth as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/auth')

Voici la fonction d'affichage de connexion :

@auth.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.objects(email=form.email.data).first()
        if user is not None and user.verify_password(form.password.data):
            login_user(user, form.remember_me.data)
            return redirect(request.args.get('next') or url_for('main.index'))
        flash('Invalid username or password.')
    return render_template('auth/login_v3.html', form=form)

Lors de l'exécution de la connexion, il passe de ip:443/auth/login à ip/index, ignorant directement le port. Cependant, il n'y a pas de problème de ce type lors de l'accès direct à Gunicorn. On soupçonne qu'il y a un problème avec les paramètres de Nginx. Résoudre. . .

ringa_lee
ringa_lee

ringa_lee

répondre à tous(1)
伊谢尔伦

Solution : paramètres nginx : ignorez le port proxy, ajoutez-le simplement
proxy_set_header Host $host:$server_port;
Par exemple :
Si vous définissez proxy_set_header Host $host:2345;, lorsque redirect('index'), votre instance de flacon sera redirigé vers $host:2345/index

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal