Django 一机多网站部署:Debian + Nginx + uWSGI
2015-05-20 23:09
609 查看
原文地址:http://sleepycat.org/blog/tag-django/30
部署 Django 网站是很烦的事情。最近成功在 Debian VPS 机器上部署成功,将步骤记录下来备份。(一台机器多个网站)
然后安装 Django 及相关库。
保存后关联配置文件并重启服务:
部分参数:
if ($host = 'www.sleepycat.org'){rewrite ^/(.*)$ http://sleepycat.org/$1 permanent;} 是配置去掉域名前的 www
loation /static/ 配置静态文件目录。
uwsgi_pass 127.0.0.1:3032; 每个域名的端口不一样。
参数:
processes/threads 分别表示进程、线程数。
配置好 pythonpath 确保能找到 sleepycat.settings
其他域名类似。如:
修改 rc.local,使机器重启时自动加载。
部署 Django 网站是很烦的事情。最近成功在 Debian VPS 机器上部署成功,将步骤记录下来备份。(一台机器多个网站)
1. 安装环境
安装基本所需的软件:$ sudo apt-get install nginx $ sudo apt-get install build-essential python-dev $ sudo apt-get install python-pip $ sudo pip install uwsgi
然后安装 Django 及相关库。
2. 配置 Nginx
新建 websites.conf$ sudo vi /etc/nginx/websites.conf server { listen 80; server_name sleepycat.org www.sleepycat.org; charset utf-8; if ($host = 'www.sleepycat.org'){ rewrite ^/(.*)$ http://sleepycat.org/$1 permanent; } location / { root /website/sleepycat; uwsgi_pass 127.0.0.1:3031; include /etc/nginx/uwsgi_params; } location /static/ { alias /website/sleepycat/static/; autoindex off; } } server { listen 80; server_name haveku.com www.haveku.com; charset utf-8; location / { root /website/haveku; uwsgi_pass 127.0.0.1:3032; include /etc/nginx/uwsgi_params; } location /static/ { alias /website/haveku/static/; autoindex off; } }
保存后关联配置文件并重启服务:
$ sudo mv /etc/nginx/sites-enabled/default /etc/nginx/sites-enabled/default.bak $ sudo ln -s /etc/nginx/websites.conf /etc/nginx/sites-enabled/default $ sudo /etc/init.d/nginx restart
部分参数:
if ($host = 'www.sleepycat.org'){rewrite ^/(.*)$ http://sleepycat.org/$1 permanent;} 是配置去掉域名前的 www
loation /static/ 配置静态文件目录。
uwsgi_pass 127.0.0.1:3032; 每个域名的端口不一样。
3. 配置 uWSGI
$ vi sleepycat.ini [uwsgi] socket=127.0.0.1:3031 chdir=/website pythonpath=/website/sleepycat module=sleepycat.wsgi:application env = DJANGO_SETTINGS_MODULE=sleepycat.settings processes=2 threads=1 stats=127.0.0.1:9191 vacuum=true master=true daemonize=/tmp/uwsgi.log
参数:
processes/threads 分别表示进程、线程数。
配置好 pythonpath 确保能找到 sleepycat.settings
其他域名类似。如:
$ vi haveku.ini [uwsgi] socket=127.0.0.1:3032 chdir=/website pythonpath=/website/haveku module=sleepycat.wsgi:application env = DJANGO_SETTINGS_MODULE=mydomain2.settings processes=2 threads=1 stats=127.0.0.1:9192 vacuum=true master=true daemonize=/tmp/uwsgi_mydomain2.log
4. 配置 vassals 与重启自动加载
配置 vassals$ sudo mkdir /etc/uwsgi $ sudo mkdir /etc/uwsgi/vassals $ sudo ln -s /home/user/sleepycat.ini /etc/uwsgi/vassals/ $ sudo ln -s /home/user/haveku.ini /etc/uwsgi/vassals/ $ sudo uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data
修改 rc.local,使机器重启时自动加载。
$ sudo vi /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data --daemonize /home/user/emperor.log exit 0
5. 配置 hosts 名
$ sudo vi /etc/hosts 127.0.0.1 localhost.localdomain localhost 127.0.0.1 sleepycat.org 127.0.0.1 haveku.com
6. 版本信息
Debian 7,Django 1.6相关文章推荐
- Django 一机多网站部署:Debian + Nginx + uWSGI
- 从零开始搭建个人网站(7)nginx+uWSGI部署Django项目(下)
- 从零开始搭建个人网站(6)nginx+uWSGI部署Django项目(上)
- Debian7下初次尝试Nginx+Uwsgi部署Django开发环境
- nginx + uwsgi + debian部署django
- debian完整部署 Nginx + uWSGI + Django
- 【django】Nginx+uWSGI+Django部署我的博客网站
- Django + Uwsgi + Nginx 实现生产环境部署
- Python3 开发以及部署 RESTful API项目(Python3 + Django2.0 + Django REST FrameWork + Centos7 + uWsgi + Nginx
- django+uwsgi+nginx部署
- Django+uwsgi+nginx环境安装部署
- Django+Nginx+uWSGI部署
- uWSGI+django+nginx的工作原理流程与部署历程
- uwsgi+django+nginx+supervisor部署web应用(python)
- django自带wsgi server vs 部署uwsgi+nginx后的性能对比
- CentOS部署Nginx+uWSGI+Django
- Nginx+uwsgi部署django项目
- Ubuntu + Nginx + uwsgi部署Django Web项目
- Django 部署 uwsgi + nginx + supervisor
- uwsgi+nginx部署 django应用