2016-07-11 6 views
2

私はPythonとFlaskでサイトを開発しています。ブラウザのlocalhostから私のチームの開発サーバーと開発サイトに移動したいのですが、問題があります。私はすでにFlaskのドキュメントを見てきました。host='0.0.0.0'を使用するか、SERVER_NAMEを指定することをお勧めします。したがって、これらの事柄のどちらも助けられていません。ここで私がやっているかを示すためのコードのビットです:Flaskでローカルホストから実際のURLに移動しますか?

app = Flask(__name__) 

if __name__ == '__main__': 
    app.secret_key = 'super secret key' 
    app.config['SERVER_NAME'] = 'https://example.org/blah' 
    app.run(host=app.config['SERVER_NAME'], port=4343, debug=True) 

をあなたが見ることができるようにではなくlocalhost:500の、私は自分のブラウザに行くと'https://example.org/blah'を訪問し、同じものを見ることができるようにしたいです。コードのこの部分では

、私はこのエラーを取得する:

(py34)user:~/flask$ python app.py 
INFO - Connection with server established! 
INFO - Server version meets recommendations (v2.9) 
Traceback (most recent call last): 
File "app.py", line 18, in <module> 
app.run(host=app.config['SERVER_NAME'], port=4343, debug=True) 
File "/home/me/anaconda3/envs/py34/lib/python3.4/site-packages/flask/app.py", line 772, in run 
run_simple(host, port, self, **options) 
File "/home/me/anaconda3/envs/py34/lib/python3.4/site-packages/werkzeug/serving.py", line 674, in run_simple 
s.bind((hostname, port)) 
socket.gaierror: [Errno -2] Name or service not known 

代わりに私がhost='0.0.0.0'を使うSERVER_NAMEを使用するのでは、私はすべてのエラーを取得しないと、それが正常に"Running on http://0.0.0.0:4343/"を開始しますが、私は従うことができない場合私のローカルホストに接続するときと同じ方法でブラウザにURLを送ります。

フラスコアプリをhttps://example.org/blahに掲載するにはどうすればよいですか?

また、知ることができれば、私はsshを自分のサーバーに持っていなければなりません。

+2

注:本番とテストの間でURLを変更しないようにするには、 '/ etc/hosts'を使用してDNSルックアップをショートカットします。 – o11c

答えて

2

サーバーからhost='0.0.0.0'を実行すると、example.org:4343にナビゲートしてアプリを表示できるはずです。

さらに、SERVER_NAMEdocumentationごとに、ポートが必要です。

the name and port number of the server. Required for subdomain support (e.g.: 'myapp.dev:5000')

を最後に、あなたはポート番号なしでアプリをお見せしたい場合は、あなたのいずれかをして、ポート80(または443)でそれを実行する必要がありますrootの権限、またはNginx/Apacheを使用してドメインからアプリケーションにリクエストをルーティングすることができます。

+0

'host = 0.0.0.0'で私のサーバはポート443に自動的にポストしているように見え、それを表示するにはシンボリックリンクが必要です。この場合、私はポート4343を指定する必要はないと思いますが、ポートを与えなければFlaskは実行されないと思いますか? – SnarkShark

+0

実際には、あなたはnginx/apacheを使用するべきだと思う...フラスコウェブサーバーはスーパーホーキーだ、私はまだhttp 1.1を使用していると思う。 – maxymoo

+0

@maxymoo私は間違いなくFlaskをデバッグモードなしで実行すると静的ファイルこれはNginx/Apacheの仕事になります。 – Celeo

関連する問題