仮想化(KVM)ネットワーク編クラウド(OpenStack)周辺機器サーバー管理Tipsスクリプト言語PythonPHPJavaScriptCMS・フレームWordPressDjangoFuelPHPCodeIgniterCakePHPITの話題OSSの話題ハードウェアの話題スマートフォンアミューズメントサイトについて徒然草お知らせお知らせ1お知らせ2HOMEフレームワーク・CMSDjangoハイパフォーマンス・サーバーNginxを使おう(その04)ーuWSGIでDjangoアプリ開発ハイパフォーマンス・サーバーNginxを使おう(その04)ーuWSGIでDjangoアプリ開発admin2014年7月7日TweetPython/Java/RubyのWebアプリケーション開発を行う場合、最終的には当然、本番のサーバーへのデプロイが必要になりますが、サイト管理者にとってはこれがなかなかの難物でした。NginxにUbuntu14.04LTSでインストールできるuWSGI(ユーウィズギ?)を使うと、いとも簡単にデプロイできます。Djangoの本家サイトには、1対多のテーブルモデルを使った簡易Web投票システム構築の例題がありますが、これに沿って開発サーバーで確認したものを、Nginxにデプロイしたものが下記の図です。データベースは例題のSQLite3ではなく、Ubuntu14.04LTSでインストールできるMySQL(当面、MariaDBに変更するつもりはなさそうです)を使用しましたが、Python-MySQL.connectorを使えば、問題なくMySQLサーバーにアクセスでき、特に問題なく例題を最後まで追跡することができました。これは、Djangoのバックエンドを表示したものです。Nginx+uWSGIで動作しています。今後、次の順序で投稿する予定です。uWSGIのインストール。Python2用とPython3用のプラグインがありますので、Python3用のプラグインを同時にインストールする必要があります。Python3で開発した場合に、間違ってPython2用のプラグインをインストールしますと、バックエンドが正常に動作しなくなるのを始め、いろんなところに重大な問題が生じてしまいます。Djangoのsettings.pyならびにurls.pyの設定。cssなど、MySQLを使うための設定と静的ファイルを配信するための設定が中心になります。Nginxのdefaultへの追加設定。uWSGIの設定ローカル環境で動作させるための/etc/hostsの設定まあ、何にしてもPython2系列とPython3系列では、仕様がかなり変わっていますので、注意が必要でした。Interface=ウィズギ)とは(インターネット上のクライアント→Webブラウザ)→Webサーバーにアクセスした際に、Webサーバーと(各種フレームワークを使った)Webアプリケーションとの間の通信(データのやりとり)の規約を定めたもの、というように理解しております。実際には、Pythonにはwsgirefパッケージ(機能を実現するための多数のモジュール=クラスの集まり)というものがあって、これが、インターネット上のユーザーがWebサーバーにアクセス(Request)した際に、フレームワークを使ったWebアプリケーションとのデータのやりとりを中継しているらしい。uwsgi-plugin-sqlite3でインストールするということになっているようですね。【2】Djangoのsettings.pyとurls.pyの設定まず、settings.pyについて。"/var/www/mysite/static"SITE_ROOTとSTATIC_ROOTは開発段階では必要ないとのことですが、Nginxにデプロイする際は必須。投票システムの例題は、/var/www/mysiteにインストールしています。DATABASESのところにMySQLを使用する際の設定を追加してあります。次に、urls.pyについて。Script、画像データの配信に必要とのことです。これがないと、バックエンドが文字だけになってしまいます。posts:Django(1.5x)のチュートリアルについて【加筆】Djangoで作成した高機能ブログ「Django-Blog-Zinnia」が在りました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。Communitycom,Inc.。