環境:
・OS:Linux Ubuntu 14.04 64位
・Nginx
・Gunicorn
・supervisor
アリババcloudでECSを購入して、ssh接続方法でウェブサーバに接続できます。
##step1: pythonの環境の用意
・ウェブサーバの方は、python2があ李ますが、python3ないので、必要な場合はダウンロードするべき。
・自分のプロジェクトをFTP ソフトとか scpでコマンドでウェブサーバーアプロードします。
[サーバーのpath]
step2: Gunicornのインストール
Gunicornは仮想環境を使うべき(virtualenv)
(venv) $ pip install gunicorn
Gunicornを実行する
8000 「ファイル名」:app
ここでは簡単なhello.pyを実行してみます。
hello.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hello world'
if __name__ == '__main__':
from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)
app.run()
実行成功したら、 webサーバで訪問できます。
//127.0.0.1:8000/
上のコマンドで、terminalで確かめることができます。
##step3: nginxのインストール&環境設定
・nginxをインストール
$ sudo apt-get update
$ sudo apt-get install nginx
$ sudo chmod 777
・ngixnの環境設定
sudo cp /etc/nginx/site-avalidable/default /etc/nginx/site-avalidable/default.bak
sudo vim /etc/nginx/sites-avalidable/default
・相応な部分を編集します。
server {
listen 80;
server_name example.org; # ドメインまたは、IPアドレス
location / {
proxy_pass http://127.0.0.1:8080; # ここは gunicorn hostアドレス
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
設定した後、再実行します。
これで、OK。
ドメインとかIPアドレスで、自分のホームページを訪問できます。
##備考
・nginxコマンド
起動: sudo service nginx start
restart: sudo service nginx restart
stop: sudo service nginx stop
テスト: sudo service nginx configtest