您的位置:首页 > 运维架构 > Nginx

Debian7下初次尝试Nginx+Uwsgi部署Django开发环境

2015-07-18 17:45 821 查看
之前一直都用的是新浪的SAE,但是由于各种限制,各种不爽,终于下定决心开始折腾VPS,于是在搬瓦工上买了个年付VPS,开始折腾之旅。

由于对Linux一窍不通,所以不知道如何在Linux上部署开发环境,因此事先查询了好多的资料,找到几篇可以参考的文章,由于系统版本,Nginx版本,Python版本不同,配置的情况可能也略有不同,所以先照着别人的折腾看看。

debian一般默认就安装有python,所以省略这一步,不过有些系统python版本太低,需要先升级Python到需要的版本,怎么升级就不介绍了。

1. 首先安装必须的软件

apt-get update
apt-get upgrade
apt-get install build-essential psmisc
apt-get install python-dev libxml2 libxml2-dev

apt-get install python-pip
pip install uwsgi


安装Nginx 和 Mysql

apt-get install mysql-server
apt-get install nginx


安装django 和 mysql库

pip install python-mysqldb
pip install Django==1.6.2


到这里基本上安装部分就介绍完了,下面讲解配置部分,首先建立web项目的文件夹,比如说我放在/var/www下,然后通过下面的命令创建名为mysite的Django项目:

cd /home/user/www
django-admin.py startproject mysite


  此时的目录结构为:

mysite/
├── mysite/
│    ├── __init__.py
│    ├── settings.py
│    ├── urls.py
│    ├── wsgi.py
└── manage.py


2. 配置Nginx

由于Nginx默认配置文件中包含了" /etc/nginx/sites-enabled/* "目录下的所有配置文件,所以只需要在此目录新建配置文件即可,新建 websites.conf

server {
listen 80;
server_name mydomain.com www.mydomain.com;
charset     utf-8;

if ($host = 'www.mydomain.com'){rewrite ^/(.*)$ http://mydomain.com/$1 permanent;}

location / {
root /var/www/mysite;
uwsgi_pass 127.0.0.1:3031;
include     /etc/nginx/uwsgi_params;
}

location /static/ {
alias /var/www/mysite/static/;
autoindex off;
}

}


  if ($host = 'www.mydomain.com'){rewrite ^/(.*)$ http://mydomain.com/$1 permanent;} 去掉域名前的 www,自动跳转不带www的

  loation /static/ 配置静态文件目录。

  uwsgi_pass 127.0.0.1:3032; 每个域名的端口不一样, 并且要和uwsgi的端口一样。

3. 配置uWSGI

配置文件支持ini,xml等各种方式配置,个人比较喜欢ini,文件位置放在哪里都可以,最好是方便管理,可以分别放在不同项目的目录内,也可以统一放在uWSGI的安装目录内。

[uwsgi]
socket = 127.0.0.1:3031
chdir = /var/www/mysite/mysite
pythonpath = /var/www/mysite
module = mysite.wsgi:application
env = DJANGO_SETTINGS_MODULE=mysite.settings
processes = 4
threads = 1
stats = 127.0.0.1:9191
vacuum = true
master = true
py-autoreload = 1
daemonize = /tmp/uwsgi.log


  processes/threads 分别表示进程、线程数。

  配置好 pythonpath 确保能找到 mysite.settings

  py-autoreload 这个可以在项目内源码变化的时候自动重启uwsgi

4. 启动测试

启动方式:进入ini配置文件所在目录:uwsgi mysite.ini

启动多个网站的话,uwsgi mysite2.ini

killall -9 uwsgi            	杀死有uwsgi进程
uwsgi mysite.ini			开启uwsgi配置
service nginx restart		重启
service nginx reload		平滑重新加载


可以通过 netstat -lpnt 列出端口占用情况,查看对应的端口是否开启,就可以知道配置文件是否生效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: