uWSGI vhost 共用於不同站點


上一篇 升級 Nginx + 安裝 uWSGI + Python VirtualEnv + Bottle
使用到了 uWSGI,不過由於種種的理由.同一部主機可能不止一個站點.
所以總不能夠為每個站點都獨立出 uWSGI 守護進程.所以記錄一下共用方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 啟動 uWSGI (需要加上 -vhost)
/usr/local/uwsgi/uwsgi --gid=[執行組] --uid=[執行用戶] -s :8888 -H /home/[用戶]/venv/[專案] --vhost

# 之後便是配置一個 VirtualEnv 和安裝所需要的模組/套件
/usr/local/bin/virtualenv --no-site-package /home/[用戶]/venv/[專案名]
cd /home/[用戶]/venv/[專案名]
source bin/activate.csh

pip install bottle
pip install make
....

# 接著就是設定 Nginx 了.這裡每個站點都必須為一個 Server Node
server {
listen 80;
charset utf-8;
root /home/[用戶]/[專案1];
server_name domain1.me www.domain1.me;

location / {
include uwsgi_params;
uwsgi_param UWSGI_PYHOME /home/[用戶]/[專案1];
uwsgi_param UWSGI_CHDIR /home/[用戶]/[專案1];
uwsgi_param UWSGI_SCRIPT index; # 專案的 WSGI 入口檔案 (如 index.py, 但省略 .py 結尾)
uwsgi_pass 127.0.0.1:8888; # 對應的 WSGI 程式位置
}
}

server {
listen 80;
charset utf-8;
root /home/[用戶]/[專案2];
server_name domain2.me www.domain2.me;

location / {
include uwsgi_params;
uwsgi_param UWSGI_PYHOME /home/[用戶]/[專案2];
uwsgi_param UWSGI_CHDIR /home/[用戶]/[專案2];
uwsgi_param UWSGI_SCRIPT index; # 專案的 WSGI 入口檔案 (如 index.py, 但省略 .py 結尾)
uwsgi_pass 127.0.0.1:8888; # 對應的 WSGI 程式位置
}
}