:Https with Http in Flask Python
しかし、これはのみ実行するようにフラスココードを設定しますSSLで展開時に実際にFlaskプロセスを起動することはありません。そのためには、/etc/httpd/conf.d/wsgi.confスクリプトを編集して、wsgiデーモンの2番目のインスタンスを起動する必要があります。
wsgi.confのデフォルトスクリプトには、ポート80のセクションが含まれている必要があります。このセクションをコピーしてSSLパラメータを追加し、wsgiコマンドを編集して別の変数名にしたい場合は、打ち上げここで説明したように、あなたも、WSGIを削除し、代わりに443へのリダイレクトを持つように、この時点でのポート80のセクションを編集することができますことを
<VirtualHost *:443>
ServerName <MY SERVER NAME>
ServerAlias <MY SERVER NAME>
SSLEngine on
SSLCertificateFile <Server PEM file>
SSLCertificateKeyFile <Private Key PEM file>
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
SSLHonorCipherOrder on
Alias /static/ /opt/python/current/app/static/
<Directory /opt/python/current/app/static/>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias//opt/python/current/app/application.py
<Directory /opt/python/current/app/>
Require all granted
</Directory>
WSGIDaemonProcess wsgi2 processes=1 threads=15 display-name=%{GROUP} \
python-path=/opt/python/current/app:/opt/python/run/venv/lib64/python3.4/site-packages:/opt/python/run/venv/lib/python3.4/site-packages user=wsgi group=wsgi \
home=/opt/python/current/app
WSGIProcessGroup wsgi2
</VirtualHost>
注: Redirect to Https using Elastic Beanstalk ELBとRedirect HTTP to HTTPS Apache2
テスト私は、次の追加を持っていますその後、
sudo service httpd restart
を使用してApacheサーバをリセットすることにより、この構成では、開発サーバーを起動
あなたはその後、フラスコを2つのポート上で実行して表示されるはずです
または
sudo /home/ec2-user/anaconda3/bin/python application.py
!
EC2インスタンスでこれを実行している場合は、コードがすでに展開され実行されている可能性があるので、ポートが使用中である可能性があります。「OSError:[Errno 98] Address is already use "
あなたはまだ完了していません...ああ、もう1つの落ち着きがあります...
私はあなたの/etc/httpd/conf.d/を上書きん
https://forums.aws.amazon.com/thread.jspa?threadID=163369からTHIS以下の事実(StackOverflowの質問
what is difference between commands and container commands in elasticbean talk、
Configure apache on elastic beanstalk、
wsgi user permissions on elastic beanstalkも参照)... CodeStarとElastic Beanstalkで経由
明らかEC2展開を発見しましたwsgi.confファイル。これを防ぐ/修正するには、独自のwsgi.confファイルを使用するように.ebextensions設定スクリプトを編集する必要があります。これには、Amazonがデフォルトスクリプトに行っている更新を追跡しないという欠点があることに注意してください。
最初に、保持したいwsgi.confファイルを.ebextensionsディレクトリにコピーしました。後、
files:
"/etc/httpd/conf.d/wsgi.conf" :
mode: "000777"
owner: root
group: root
content: |
<IfModule !wsgi_module>
LoadModule wsgi_module modules/mod_wsgi.so
</IfModule>
. . .
<VirtualHost *:443>
. . .
</VirtualHost>
LogFormat "%h (%{X-Forwarded-For}i) %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
その後:
次に、私は次のように追加することが私の.ebextensions/sshd.configファイル(私はそのディレクトリに持っている唯一のもの)を編集し、「ファイル:」セクション、私が追加しますコンフィギュレーションの最後に、次の:上記CONTAINER_COMMANDS、ないコマンドを使用すること
container_commands:
02_update_wsgi:
command: >
cp .ebextensions/wsgi.conf ../wsgi.conf
注意。
この技術の素晴らしいところは、あなたが展開した後、手動で何かをコピーするか、次の「sudoのサービスのhttpdの再起動」
再実行する必要はありませんので、Elastic Beanstalkでは自動的に、Apacheサーバの再起動のコマンドを実行していることです上記の手順でSSL証明書を使用してHTTPS上でFlaskを実行し、正しくデプロイします。