Python 重新定向到https连接已重置

Python 重新定向到https连接已重置,python,redirect,ssl,flask,Python,Redirect,Ssl,Flask,我是一个新的烧瓶用户,我有一个问题。我想将所有url从http重定向到https,但出现以下错误: 连接已重置 这是我的代码: #! /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

我是一个新的烧瓶用户,我有一个问题。我想将所有url从http重定向到https,但出现以下错误:

连接已重置

这是我的代码:

#! /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\u上下文
Werkzung
(Flask的默认服务器)执行此操作。2014年提出并拒绝了允许此功能的功能:;引用:

这需要运行另一个HTTP服务器。Werkzeug无法做到这一点,在我看来,这超出了范围。无论如何,run_simple应该只用于开发

因此,您的Flask应用程序调用下面的
run\u simple
,传递
ssl\u context
和一些其他变量。只要您使用
ssl\u context
,SSLify就不会对您的路由产生影响,因为此变量的唯一存在使得Werkzung主机只使用https模式。要从http重定向到https,您需要设置另一台服务器,侦听http并重定向到https,或者迁移到其他更高级的服务器,以便轻松重定向

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

虽然重量轻且易于使用,但Flask的内置服务器并非如此 适用于生产,因为它不能很好地扩展,默认情况下可以提供服务 一次只有一个请求

使用Apache,您可以使用VirtualHost规则重定向所有http请求,侦听速度为80:

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

ServerName mysite.example.com
DocumentRoot/usr/local/apache2/htdocs
重定向/安全https://mysite.example.com/secure
请在ApacheWiki上查看更多信息