centos 6.4でnginx+uwsgi+flaskの実行環境構築

5440 ワード

以下のインストール手順は、centos 6.4の実際の構成に成功したことがあります.記録して参考にしてください.問題があれば連絡してください.
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/