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等)
を準備します。
2016年1月21日木曜日
Ubuntu14.04 + Nginx で、画像のリサイズを行う。
こちらの続きです。
http://yamayoshi.blogspot.jp/2013/05/ubuntu1204-nginx.html
やりたいこと。
・任意のサイズを指定
・任意のアドレスを指定
元の画像: http://<アドレス>/<パス>/<ファイル>
↓
リサイズ: http://<変換サーバのアドレス>/g<サイズ>/<アドレス>/<パス>/<ファイル>
1.インストール
$ sudo apt-get install nginx
2.設定
FILE: /etc/nginx/conf.d/<app>.conf
--
server {
listen 80;
server_name www.example.com;
resolver localhost;
location / {
uwsgi_pass unix:/tmp/<app>.sock;
include uwsgi_params;
}
location ~ ^/g(?P<size>[^/]+)/(?P<url>[^/]+)/(?P<file>.*)$ {
rewrite ^ /crop last;
}
location /crop {
image_filter crop $size $size;
proxy_pass http://$url/$file;
add_header Nginx "$size $url $file";
}
}
--
ちょこっと説明
> location ~ ^/g(?P<size>[^/]+)/(?P<url>[^/]+)/(?P<file>.*)$
→ サイズ、アドレス、ファイル(パスを含む) の情報を取り出して、変数に格納します。
> image_filter crop $size $size;
→ 変換サイズを指定
> proxy_pass http://$url/$file;
→ 元の画像ファイルを指定
> add_header Nginx "$size $url $file";
→ おまけ(HTTP_HEADERに変数を出力し、Chrome開発ツールで確認。)
3.起動/停止
$ sudo service nginx stop … 停止
$ sudo service nginx start … 起動
4.動作確認
ブラウザから、
http://www.example.com/g160/3.bp.blogspot.com/-qn0m7KScp4A/TsTyX4cO5FI/AAAAAAAAANA/ooqc_7cGnis/s1600/NEC_0025.JPG
にアクセスすると、
http://3.bp.blogspot.com/-qn0m7KScp4A/TsTyX4cO5FI/AAAAAAAAANA/ooqc_7cGnis/s1600/NEC_0025.JPG
のサムネイル画像を表示します。
キャッシュを使う場合は、前回の記事を参考に。
http://yamayoshi.blogspot.jp/2013/05/ubuntu1204-nginx.html
やりたいこと。
・任意のサイズを指定
・任意のアドレスを指定
元の画像: http://<アドレス>/<パス>/<ファイル>
↓
リサイズ: http://<変換サーバのアドレス>/g<サイズ>/<アドレス>/<パス>/<ファイル>
1.インストール
$ sudo apt-get install nginx
2.設定
FILE: /etc/nginx/conf.d/<app>.conf
--
server {
listen 80;
server_name www.example.com;
resolver localhost;
location / {
uwsgi_pass unix:/tmp/<app>.sock;
include uwsgi_params;
}
location ~ ^/g(?P<size>[^/]+)/(?P<url>[^/]+)/(?P<file>.*)$ {
rewrite ^ /crop last;
}
location /crop {
image_filter crop $size $size;
proxy_pass http://$url/$file;
add_header Nginx "$size $url $file";
}
}
--
ちょこっと説明
> location ~ ^/g(?P<size>[^/]+)/(?P<url>[^/]+)/(?P<file>.*)$
→ サイズ、アドレス、ファイル(パスを含む) の情報を取り出して、変数に格納します。
> image_filter crop $size $size;
→ 変換サイズを指定
> proxy_pass http://$url/$file;
→ 元の画像ファイルを指定
> add_header Nginx "$size $url $file";
→ おまけ(HTTP_HEADERに変数を出力し、Chrome開発ツールで確認。)
3.起動/停止
$ sudo service nginx stop … 停止
$ sudo service nginx start … 起動
4.動作確認
ブラウザから、
http://www.example.com/g160/3.bp.blogspot.com/-qn0m7KScp4A/TsTyX4cO5FI/AAAAAAAAANA/ooqc_7cGnis/s1600/NEC_0025.JPG
にアクセスすると、
http://3.bp.blogspot.com/-qn0m7KScp4A/TsTyX4cO5FI/AAAAAAAAANA/ooqc_7cGnis/s1600/NEC_0025.JPG
のサムネイル画像を表示します。
キャッシュを使う場合は、前回の記事を参考に。
登録:
投稿 (Atom)