Apache + uWSGI + Flask でHello World! @Amazon Linux 2
Apache + uWSGI + Flask でHello World! @Amazon Linux 2:
Nginxを使いたかったけど既存環境がNginxでなかったので、Apacheを使ってFlaskを動かした話。
EC2の立ち上げについては他記事に投げてますすいません。
ここら辺を読むとわかります。
EC2を建てると既にApahce2がインストールされているのでそのまま利用しました。
また、
/etc/httpd/conf.modules.d/00-proxy.conf
を見ると必要なモジュールが既に存在しているのでこれもそのまま利用。
リバースプロキシの設定を以下のようにし、/etc/conf.d/flask.confとして保存しました。
詳しい説明は以下で、
以下のように最小限の設定にし、uwsgi.iniとして保存。
上記uwsgi.iniの設定通りにapp.pyを作成
こんなディレクトリ構成になりました。
apache再起動して、uWSGIを実行します。
curlコマンドで確認して出てました。
以上、Amazon Linux 2はいろいろ勝手に入っててくれるので環境構築が楽でした。
間違いがあればご指摘おねがします。
概要
Nginxを使いたかったけど既存環境がNginxでなかったので、Apacheを使ってFlaskを動かした話。EC2の立ち上げについては他記事に投げてますすいません。
環境
- AMI : 4.14.62-70.117.amzn2.x86_64
- Apache : 2.4.34
- uWSGI : 2.0.17.1
- Python :2.7.14
EC2
ここら辺を読むとわかります。AWSでWebサーバー構築!EC2を作成してSSH接続する(第3回)
https://miyabi-lab.space/blog/15
Apache
EC2を建てると既にApahce2がインストールされているのでそのまま利用しました。また、
/etc/httpd/conf.modules.d/00-proxy.conf
を見ると必要なモジュールが既に存在しているのでこれもそのまま利用。
LoadModule proxy_http_module modules/mod_proxy_http.so ←コレ LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so LoadModule proxy_scgi_module modules/mod_proxy_scgi.so LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so ←コレ
ProxyRequests Off //フォワードプロキシoff ProxyPass /hoge uwsgi://127.0.0.1:8930 //転送設定 ProxyPassReverse /hoge uwsgi://127.0.0.1:8930
Apache 2.4 で リバースプロキシの設定
https://qiita.com/gingi99/items/83c1fb07644cd232d91e
uWSGI
以下のように最小限の設定にし、uwsgi.iniとして保存。[uwsgi] socket = 127.0.0.1:8930 #上記のProxyPassに合った設定を module = app #app.pyならapp main.pyならmainを設定する callable = app #moduleで設定したファイル内のこの名前→app = Flask(__name__) master = True #子プロセスが死んでもそれを蘇生する親プロセスを立ち上げる否かのフラグ
Quickstart for Python/WSGI applications
https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html
Flask
上記uwsgi.iniの設定通りにapp.pyを作成from flask import Flask app = Flask(__name__) @app.route('/') def upload(): return 'Hello World!' if __name__ == '__main__': app.run()
実行
こんなディレクトリ構成になりました。. ├── app.py └── uwsgi.ini
sudo service httpd restart uwsgi --ini uwsgi.ini
curl http://example.com/hoge Hello World!
間違いがあればご指摘おねがします。
コメント
コメントを投稿