2015-09-28 27 views
5

Yeni bir Flask kullanıcısıyım ve bir sorunum var. Ben http değerinden https tüm url yönlendirme istiyorum ama bu hatayı yaşıyorum:https'e Flask-Python yönlendirmesi Bağlantı sıfırlandı

The connection was reset

Bu benim Matara kodu: Ben girerseniz

#! /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) 

doğrudan adres https://192.168.42.186:5000 işe ama http sadece onun değil

Teşekkür fo r bana yardım

cevap

1

Bunu ssl_context ve Werkzung (Flask varsayılan sunucusu) kullanarak yapamazsınız. Buna izin verilebilecek bir işlev 2014 yılında önerildi ve reddedildi: auto http to https redirect; gerekçe:

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.

Yani ne oluyor senin Matara uygulamasıdır ssl_context geçen ve bazı diğer değişkenler, altından run_simple çağırır. SSLify, ssl_context kullandığınız sürece yönlendirme üzerinde hiçbir etkiye sahip değildir, çünkü bu değişkenin tek varlığı Werkzung ana bilgisayarını yalnızca https şemasını kullanarak yapar. Http’dan https’e yönlendirme yapmak için, başka bir sunucu kurmanız, http’da dinlemeniz ve https’e yönlendirmeniz ya da yeniden yönlendirmeye izin veren başka, daha gelişmiş bir sunucuya geçiş yapmanız gerekir.

Apache'ye veya tabancaya geçiş yapmanızı tavsiye ederim. Flask dağıtım hakkında kapsamlı talimatlar sağlar: Deployment Options. Yerleşik Flask (Werkzung) sunucusunda unutmayın Flask yazma yazarları olarak, üretim için uygun değildir:

: Eğer 80 olarak dinleme, VirtualHost kuralını kullanarak tüm http isteklerini yönlendirmek olabilir Apache kullanma

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.

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

Redirect Request to SSL Apache wiki.

İlgili konular