gpt4 book ai didi

python - Flask-Python 重定向到 https 连接被重置

转载 作者:太空狗 更新时间:2023-10-30 00:10:21 30 4
gpt4 key购买 nike

我是 Flask 的新用户,我遇到了一个问题。我想将所有 url 从 http 重定向到 https,但出现此错误:

The connection was reset

这是我的 Flask 代码:

#! /usr/bin/python
# -*- coding:utf-8 -*-

from flask import *
from OpenSSL import SSL
import psycopg2
import os
from datetime import timedelta
import sys
from flask_sslify import SSLify
reload(sys)
sys.setdefaultencoding('utf8')
db_conn = psycopg2.connect("dbname=billjobs host=192.168.42.96 port=50434 user=username password=password")

app = Flask(__name__)
db = db_conn.cursor()
app.permanent_session_lifetime = timedelta(seconds=900)
sslify = SSLify(app)
app.secret_key='\xatYK\x1ba\x1dz\xa6-D\x9d\x97\x83\xfa\xcf\xcbd\xfa\xfb\x1a|\x08\x1af'
context = ('ssl.crt','ssl.key')
@app.route('/')
def pre_log():
return render_template('index.html')
if __name__ == '__main__':
app.run(host="192.168.42.186", ssl_context=context, debug=False)

如果我直接输入地址 https://192.168.42.186:5000 它有效,但使用 http 只有它不是

谢谢你提前帮助我

最佳答案

您现在无法使用 ssl_contextWerkzung(Flask 的默认服务器)执行此操作。允许这样做的功能在 2014 年被提出并被拒绝:auto http to https redirect ;引用:

That requires running another HTTP server. Werkzeug is not capable of that and IMO it's out of scope. run_simple should only be used for development anyway.

所以发生的事情是您的 Flask 应用程序在下面调用 run_simple,传递 ssl_context 和一些其他变量。只要您使用 ssl_context,SSLify 就不会影响您的路由,因为此变量的单独存在使得 Werkzung 主机仅使用 https 架构。要从 http 重定向到 https,您需要设置另一台服务器,监听 http 并重定向到 https,或者迁移到其他更高级的服务器,以便轻松重定向。

我建议迁移到 Apache 或 gunicorn。 Flask 提供了全面的部署说明:Deployment Options .请记住,Flask (Werkzung) 的内置服务器不适合生产,正如 Flask 的作者所写:

While lightweight and easy to use, Flask’s built-in server is not suitable for production as it doesn’t scale well and by default serves only one request at a time.

使用 Apache,您可以使用 VirtualHost 规则重定向所有 http 请求,在 80 监听:

<VirtualHost *:80>
ServerName mysite.example.com
DocumentRoot /usr/local/apache2/htdocs
Redirect /secure https://mysite.example.com/secure
</VirtualHost>

Redirect Request to SSL 上查看更多信息 Apache 维基。

关于python - Flask-Python 重定向到 https 连接被重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32831122/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com