Pelayan Gunicorn berjalan pada port 8000. Nginx mendengar pada 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;
}
Menggunakan blueprint, dibahagikan kepada utama dan 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')
Ini ialah fungsi paparan log masuk:
@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)
Apabila melaksanakan log masuk, ia melompat dari ip:443/auth/login ke ip/index, langsung mengabaikan port. Walau bagaimanapun, tiada masalah sedemikian apabila mengakses Gunicorn secara langsung. Disyaki terdapat masalah dengan tetapan Nginx. Selesaikan. . .
Penyelesaian: tetapan nginx: Abaikan port proksi, tambahkan sahaja akan dialihkan ke $host:2345/index