ABLE.net の VPS で、WEBサーバを構築する手順です。
1. インストール
$ sudo apt-get install nginx uwsgi uwsgi-plugin-python python-pip
2. ポートを開く
$ sudo ufw allow 80
3. Nginx の設定
デフォルトのサイト設定を削除しておきます。
$ sudo rm /etc/nginx/sites-enabled/default
設定ファイルの例です。
FILE: /etc/nginx/conf.d/<サイト名>.conf
--
server {
listen 80;
server_name <サイトURL>;
location / {
uwsgi_pass unix:/tmp/<サイト名>.sock;
include uwsgi_params;
}
}
--
※ UNIXソケット(.sock)で、uWSGI に連結します。
再起動しておきます。
$ sudo service nginx restart
4. uWSGI (emperor) の設定
必要なディレクトリを作成します。
$ sudo mkdir -p /etc/uwsgi/vassals
$ sudo mkdir -p /var/log/uwsgi
設定ファイルです。
FILE: /etc/init/uwsgi.conf
--
description "uWSGI"
start on runlevel [2345]
stop on runlevel [06]
respawn
env UWSGI=/usr/local/bin/uwsgi
env LOGTO=/var/log/uwsgi/emperor.log
exec $UWSGI --master --emperor /etc/uwsgi/vassals --die-on-term --logto $LOGTO
--
emperorモードで起動し、/etc/uwsgi/vassals の iniファイルを監視します。
$ sudo service uwsgi restart
5. Django の動作確認
virtualenv 環境に、Django を入れます。
$ cd
$ virtualenv venv
$ cd venv
$ source bin/activate
$ pip install Django
$ django-admin.py startproject mysite
$ cd mysite
$ deactivate
6. uWSGI 設定ファイル
Nginx から uWSGI に連結する為に、iniファイルを作成します。
設定ファイルの例です。
FILE: /etc/uwsgi/vassals/<サイト名>.ini
--
[uwsgi]
# Variables
base = /home/<ユーザ名>/venv
app = <サイト名> # Djangoのデフォルトは、mysite
# Generic Config
home = %(base)
chdir = %(base)/%(app)
module = mysite.wsgi
socket = /tmp/%n.sock
chmod-socket = 666
py-autoreload = 1 #reload on change python file
plugins = python
--
7.まとめ
全体の繋がりは、以下の通り。
WEBアクセス -> Nginx -> uWSGI -> Django
複数のサイトを動かす場合は、
・Nginx の <サイト名>.conf
・uWSGI の <サイト名>.ini
・アプリケーション(Django等)
を準備します。
0 件のコメント:
コメントを投稿