Virtualenv加Django加UWSGI加Nginx多站點部署

安裝 Virtualenv

pip install –U virtualenv

搭建並進入 Virtualenv 環境

mkdir /Django/cmdb/
cd /Django/cmdb/
virtualenv --no-site-packages --distribute env
cd env/
source bin/activate

查看虛擬環境

/Django/cmdb/env
[root@saltstack env]# ll
drwxr-xr-x 2 root root 4096 May 27 16:04 bin
drwxr-xr-x 2 root root 4096 May 27 12:01 include
drwxr-xr-x 3 root root 4096 May 27 12:01 lib
lrwxrwxrwx 1 root root    3 May 27 12:01 lib64 -> lib

安裝 Django 等需要的類庫

pip install django

下面就可以進行Django項目、應用的部署了

安裝 uwsgi

pip install uwsgi

配置多站點

假設我們的兩個站點分別叫cmdb和bbs

在env目錄下(類似/Django/cmdb/env)新建文件夾 uwsgi_conf

mkdir uwsgi_conf/

進入uwsgi_conf 下建立 wa_uwsgi.ini 和 wb_uwsgi.ini 兩個配置文件

cd uwsgi_conf/
touch cmdb.ini
touch bbs.ini

cmdb.ini配置文件的內容

[uwsgi]
#plugins = python
virtualenv = /Django/cmdb/env/
chdir = /Django/cmdb/env/CMDB/
touch-reload = /Django/cmdb/env/CMDB/
module = CMDB.wsgi
socket = 127.0.0.1:3500
vhost = false
chmod-socket = 664
master = true
enable-threads = true
workers = 4 
threads = 2
vacuum = true
max-requests = 6000
pidfile = /var/log/uwsgi/cmdb.pid
daemonize = /var/log/uwsgi/cmdb.log
#touch-logreopen = /var/log/module/.touchforlogrotate

bbs.ini和cmdb.ini內容差不多,參考修改即可。

可以用 uwsgi 的 emperor 模式來啓動 uwsgi 服務

uwsgi --emperor /Django/cmdb/env/uwsgi_conf/

想要重啓某站點的時候,就 touch 一下該站點的配置文件

touch /Django/cmdb/env/uwsgi_conf/cmdb.ini

配置Nginx

    server {
        listen 80;
        server_name cmdb.test.com;

        #location /service/ {
        #    proxy_set_header Host service.test.com;
        #    proxy_pass http://service.test.com;
        #}

        charset utf-8;
        access_log logs/cmdb/access.log;
        error_log logs/cmdb/error.log;
        root /Django/cmdb/env/CMDB;
        client_max_body_size 75M;
        # location /admin {
        #    alias /Django/mysite/static/admin;
        #    }

        location /static {
            alias /Django/cmdb/env/CMDB/static; # your Django project's static files
            }

        location /media {
            alias /Django/cmdb/env/CMDB/static; # your Django project's media files
            }

        location / {
            #uwsgi_pass unix:/var/log/uwsgi/cmdb.sock;
            uwsgi_pass 127.0.0.1:3500;
            include uwsgi_params; # the uwsgi_params file you installed
            }
  }

重啓Nginx
訪問測試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章