長い間、pythonでウエブアプリを使う場合、apache+mod_wsgiを使ってきました。 この数年でnginxが早いと評判となってきて、apacheとの設定違いはきになっていました。
去年、自分が作ったウエブアプリのrequests/秒が上げたくて、apache用のmod_wsgiの代わりに、インストールしやすいpython用のウエブサーバ探したら、 uwsgiを見つけました。uwsgiで同じアプリ試したところ、apache+mod_wsgiより早い結果が出ました。
次は、virturalenv/venvを使った開発のながれです。 これも、数年前から動きは、聞きましたが、なかなかその必要なユースケースがなく、virutalenvの使い方を勉強しなかったんですが、 virtualenvがvenvというpython標準モジュールになって、自分も同じサーバ複数アプリを動かしたいのですが、やっぱり、アプリごとに自分の環境を持つべきと時間しました。
この三つ(nginx + (venv+uwsgi))がやっと、理解してきた気がするので、とりあえず、今使っている例をここでメモとして残します。
ubuntu 14.04リポジトリのnginxがインストールしやすいので、使っています。
- nginxをインストール
sudo apt-get install nginx
- インストールされると、/etc/nginxに入ります。
- nginxの基本構造と設定 TODO!!
長い間、/var/www/配下にアプリを置いてきましたが、最近, LINUXのFHSをみると、/srv/wwwのほうがいいようなきがします。 今回使っている、ubuntuのガイドには、そのようなことを書いているので、ここでは、/srv/wwwを指定しています。
https://help.ubuntu.com/community/LinuxFilesystemTreeOverview
前提条件:
- python3 を使用
- ubuntu 14.04
- venvを作成