本文假设你已经按照之前章节安装了Python3.4.3,Django 1.8. 以及MySQL,并创建了数据库以及数据库帐号密码。

安装并启动nginx


yum -y install nginx


如果安装不了或者找不到nginx的源,则手动添加文件:

终端输入:

vi /etc/yum.repos.d/nginx.repo


在里面填入:


[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

然后在执行一次 
yum -y install nginx

 配置成开机启动,并手动启动nginx服务:

chkconfig nginx on
service nginx start

如果启动失败,可能是80端口被占用

django部署方式之Gunicorn+Django+nginx+mysql

此时关闭占用80端口所在的服务,再重新启动即可(我的是80端口被apache服务占用,所以关闭服务)

django部署方式之Gunicorn+Django+nginx+mysql

此时打开网页,输入localhost,即可看到django部署方式之Gunicorn+Django+nginx+mysql

接下来,更改下nginx的配置


vi /etc/nginx/nginx.conf


将user改成自己的账号

django部署方式之Gunicorn+Django+nginx+mysql

安装gunicorn

/usr/local/bin/pip install gunicorn

然后切换到项目目录下,新建gunicorn的配置文件gunicorn.conf.py

vi gunicorn.conf.py

添加以下内容


import multiprocessing
bind = "127.0.0.1:8080"
workers = 2
errorlog = '/home/zhangpp/blog/gunicorn.error.log'
#accesslog = './gunicorn.access.log'
#loglevel = 'debug'
proc_name = 'gunicorn_blog_project'



注意:workers是工作线程数,一般设置成:服务器CPU个数 + 1


然后在项目目录下新建nginx的配置文件nginx.conf

添加以下内容


server {
     listen 80;
     server_name localhost example.com;
     access_log /home/zhangpp/blog/nginx.access.log;
     error_log /home/zhangpp/blog/nginx.error.log;
     location / {
         proxy_pass http://127.0.0.1:8080;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     }
     location /robots.txt {
        alias /home/zhangpp/blog/static/robots.txt;
     }
     location /favicon.ico {
          alias /home/zhangpp/blog/static/img/favicon.ico;
     }
     location ~ ^/(media|static)/  {
         root    /home/zhangpp/blog;
         expires 30d;
     }
     # this prevents hidden files (beginning with a period) from being served
      location ~ /\. { 
        access_log off; log_not_found off; deny all;
     }
}

然后将其链接到/etc/nginx/conf.d/blog.conf (需要root帐号权限或者sudo)


ln -s /home/zhangpp/blog/nginx.conf /etc/nginx/conf.d/blog.conf


同时,必须把nginx.conf里server_name后面的内容(localhost)加入到 settings.py里的ALLOWED_HOSTS

ALLOWED_HOSTS = ['localhost','example.com']

这样我们现在可以运行一下gunicorn:


nohup /usr/local/bin/gunicorn blog.wsgi:application -c /home/zhangpp/blog/gunicorn.conf.py&


django部署方式之Gunicorn+Django+nginx+mysql


然后再打开另一个终端重启nginx服务即可


service nginx restart


这样我们访问 http://localhost或者在外网访问example.com就可以访问我们的项目了。

相关文章: