centos 6.4でnginx+uwsgi+flaskの実行環境構築
5440 ワード
以下のインストール手順は、centos 6.4の実際の構成に成功したことがあります.記録して参考にしてください.問題があれば連絡してください.
1、nginxを取り付ける
nginxをインストールする前にgccコンパイラと関連ツールをインストールし、yumを使用してインストールすると便利です.
nginxの一部のモジュールでは、gzipにはzlib、rewriteモジュールにはpcreライブラリ、ssl機能にはopensslライブラリなどのサードパーティ製ライブラリのサポートが必要です.yumをそのまま使ってインストールすればいいです.
nginx公式サイトnginx.orgに行って最新のバージョンをダウンロードし、筆者がダウンロードしたのは1.2.7のバージョンです.
インストールの解凍
ここでconfigureはデフォルトのパラメータを使用しており、必要に応じて変更できます.ヘルプの説明は./configure–helpを使用して表示できます.
nginxサーバの起動
このうち/usr/local/nginx/sbin/nginxは起動プログラムを表し、ここでは全パスでより直感的で、自分の習慣に基づいてシステムパスにソフトリンクすることができます.
ブラウザを使用したアクセスhttp://127.0.0.1/ああ、Welcome to nginxが見えたら!の文字は、インストールに成功したことを示しています.
2、uwsgiのインストール
関連するpython-devel、setuptools、libxml 2-develをインストールし、yumで直接インストールします.インストールされたpythonを独自にコンパイルする場合は、python-develをインストールする必要はありません.
公式サイトhttp://projects.unbit.it/uwsgi/ダウンロードuwsgiは、ページはすべて英語ですが、ダウンロードページを見つけるのは難しくありません.
解凍インストール:
3、flaskのインストール
公式サイトへhttp://flask.pocoo.org/flaskをダウンロードします.
インストールの解凍
flaskプロジェクトを新規作成します.app.pyというプログラムファイルがあります.内容は次のとおりです.
flaskで持参したWebサーバが稼働していることを確認します.
4、nginxとuwsgiの構成
この手順は面倒ですが、原理を理解しても難しくありません.
uwsgiはnginx 1.2.7で標準モジュールなのでインストールする必要はありません.nginxのプロファイルを編集し、uwsgiをロードします.
変更が完了したら、プロファイルにエラーがないかどうかをテストできます.
構成が完了したら、nginxを再起動します.nginxメインプロセス番号を先に見つけます.
筆者のパソコンは13367で再起動
flaskのプロジェクトの下にプロファイルapp_を新規作成config.xmlは、uwsgiに関するパラメータを設定するために使用され、uwsgiが起動するときにこのプロファイルを指定する必要があります.内容は以下の通りです.
パラメータは次のとおりです.
pythonpathは、プロジェクトディレクトリを表す
moduleはプロジェクト起動モジュールを表し、前例がapp.pyのようにapp である.
callableはflaskプロジェクトのインスタンス名を表し、前例コードではapp=Flask(_name_)であったので、ここではapp とする
socketはnginxと通信するアドレスとポートを表し、nginx構成のuwsgi_passが一致する.
processesは、要求を処理するサブプロセスがどれだけ開かれているかを示します.
uwsgiを起動するには:
ここで、-xパラメータは、ロードされたプロファイルパスを表します.
このときブラウザでアクセスhttp://localhost、出力ハローワールドが見えます!大功を成し遂げた.
ヒント:uwsgiをプロセスを保護するように実行する必要がある場合は、-dパラメータを使用してログパスを指定します.
小結
nginxとuwsgiの間の通信ここではポートを使用して通信したり、socketファイルを使用したりすることができます.uwsgiの構成は他の構成ファイルも使用できますが、xmlを必ずしも使用する必要はありません.ここでは説明しません.何か問題があったら手紙で交流してもいいです.
ソース:http://www.01happy.com/centos-nginx-uwsgi-flask/
1、nginxを取り付ける
nginxをインストールする前にgccコンパイラと関連ツールをインストールし、yumを使用してインストールすると便利です.
$ sudo yum -y install gcc gcc-c++ make autoconf automake
nginxの一部のモジュールでは、gzipにはzlib、rewriteモジュールにはpcreライブラリ、ssl機能にはopensslライブラリなどのサードパーティ製ライブラリのサポートが必要です.yumをそのまま使ってインストールすればいいです.
$ sudo yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
nginx公式サイトnginx.orgに行って最新のバージョンをダウンロードし、筆者がダウンロードしたのは1.2.7のバージョンです.
$ wget http://nginx.org/download/nginx-1.2.7.tar.gz
インストールの解凍
$ tar -zxv -f nginx-1.2.7.tar.gz
$ cd nginx-1.2.7
$ ./configure
$ make
$ sudo make install
ここでconfigureはデフォルトのパラメータを使用しており、必要に応じて変更できます.ヘルプの説明は./configure–helpを使用して表示できます.
nginxサーバの起動
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
このうち/usr/local/nginx/sbin/nginxは起動プログラムを表し、ここでは全パスでより直感的で、自分の習慣に基づいてシステムパスにソフトリンクすることができます.
ブラウザを使用したアクセスhttp://127.0.0.1/ああ、Welcome to nginxが見えたら!の文字は、インストールに成功したことを示しています.
2、uwsgiのインストール
関連するpython-devel、setuptools、libxml 2-develをインストールし、yumで直接インストールします.インストールされたpythonを独自にコンパイルする場合は、python-develをインストールする必要はありません.
$ sudo yum -y install python-devel python-setuptools libxml2-devel
公式サイトhttp://projects.unbit.it/uwsgi/ダウンロードuwsgiは、ページはすべて英語ですが、ダウンロードページを見つけるのは難しくありません.
$ wget http://projects.unbit.it/downloads/uwsgi-1.9.tar.gz
解凍インストール:
$ tar -zxv -f uwsgi-1.9.tar.gz
$ cd uwsgi-1.9
$ python setup.py install
3、flaskのインストール
公式サイトへhttp://flask.pocoo.org/flaskをダウンロードします.
$ wget http://pypi.python.org/packages/source/F/Flask/Flask-0.9.tar.gz
インストールの解凍
$ tar -zxv -f Flask-0.9.tar.gz
$ cd Flask-0.9
$ sudo python setup.py install
flaskプロジェクトを新規作成します.app.pyというプログラムファイルがあります.内容は次のとおりです.
1
from
flask
import
Flask
2
app
=
Flask(__name__)
3
4
@app
.route(
"/"
)
5
def
hello():
6
return
"Hello World!"
7
8
if
__name__
=
=
"__main__"
:
9
app.run()
flaskで持参したWebサーバが稼働していることを確認します.
4、nginxとuwsgiの構成
この手順は面倒ですが、原理を理解しても難しくありません.
uwsgiはnginx 1.2.7で標準モジュールなのでインストールする必要はありません.nginxのプロファイルを編集し、uwsgiをロードします.
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
root html;
index index.html index.htm;
}
変更が完了したら、プロファイルにエラーがないかどうかをテストできます.
$ sudo /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
構成が完了したら、nginxを再起動します.nginxメインプロセス番号を先に見つけます.
$ ps -ef | grep nginx
筆者のパソコンは13367で再起動
$ sudo kill -HUP 13367
flaskのプロジェクトの下にプロファイルapp_を新規作成config.xmlは、uwsgiに関するパラメータを設定するために使用され、uwsgiが起動するときにこのプロファイルを指定する必要があります.内容は以下の通りです.
1
<
uwsgi
>
2
<
pythonpath
>/home/chenjiebin/web/flaskdemo</
pythonpath
>
3
<
module
>app</
module
>
4
<
callable
>app</
callable
>
5
<
socket
>127.0.0.1:3031</
socket
>
6
<
master
/>
7
<
processes
>4</
processes
>
8
<
memory-report
/>
9
</
uwsgi
>
パラメータは次のとおりです.
pythonpathは、プロジェクトディレクトリを表す
moduleはプロジェクト起動モジュールを表し、前例がapp.pyのようにapp である.
callableはflaskプロジェクトのインスタンス名を表し、前例コードではapp=Flask(_name_)であったので、ここではapp とする
socketはnginxと通信するアドレスとポートを表し、nginx構成のuwsgi_passが一致する.
processesは、要求を処理するサブプロセスがどれだけ開かれているかを示します.
uwsgiを起動するには:
$ sudo /usr/local/bin/uwsgi -x /home/chenjiebin/web/flaskdemo/app_config.xml
ここで、-xパラメータは、ロードされたプロファイルパスを表します.
このときブラウザでアクセスhttp://localhost、出力ハローワールドが見えます!大功を成し遂げた.
ヒント:uwsgiをプロセスを保護するように実行する必要がある場合は、-dパラメータを使用してログパスを指定します.
$ sudo /usr/local/bin/uwsgi -x /home/chenjiebin/web/flaskdemo/app_config.xml -d /var/log/uwsgi/uwsgi.log
小結
nginxとuwsgiの間の通信ここではポートを使用して通信したり、socketファイルを使用したりすることができます.uwsgiの構成は他の構成ファイルも使用できますが、xmlを必ずしも使用する必要はありません.ここでは説明しません.何か問題があったら手紙で交流してもいいです.
ソース:http://www.01happy.com/centos-nginx-uwsgi-flask/