CentOS6.5下Gunicorn+Django+nginx部署的过程

本文假设你已经在CentOS下使用Python manage.py runserver 0.0.0.0:8080,能够顺利跑起来,并且被外网访问到了。项目名假设为:blog_project

安装nginx

yum -y install nginx


如果安装不了或者找不到nginx的源,则手动添加文件:/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端口

假如80端口没有打开,需要打开80端口

centos开启80端口

1、开启80端口命令:/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

2、保存配置 命令:/etc/rc.d/init.d/iptables save

3、重启服务命令 :/etc/rc.d/init.d/iptables restart

4、查看已经开放的端口: /etc/init.d/iptables status

 

使用浏览器访问下,看下能不能出现nginx的欢迎页。若能成功访问,则进入下面的过程。

 

安装gunicorn

pip install gunicorn

在项目文件夹下新建nginx的配置文件nginx.conf

server{
    listen 80;
    resolver 8.8.8.8;
    access_log /home/webroot/www/public/blog_project/nginx.access.log;
​​​​​​​    error_log /home/webroot/www/public/blog_project/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;
     }
}

若涉及到静态文件和上传文件夹,在server节点下,增加如下节点。路径名要改成你自己的目录地址

location /media  {
   alias /root/mysite.com/media/;
}
location /static {
   alias /root/mysite.com/static/;
}


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

sudo ln -s /home/shawn/blog_project/nginx.conf /etc/nginx/conf.d/blog_project.conf

注意:此处也有朋友使用的是将/etc/nginx/sites-available/default文件,修改成如上步骤的配置。
这里作用是一样的。后来我部署新的服务器,就是用的这个方法。

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

ALLOWED_HOSTS = ['*']

确认源代码目录文件权限

最后一点,确认源代码文件夹的访问权限,最后一步在把所有文件的权限设置为777。nginx运行的时候,是在nginx.conf中配置的用户来运行的,不是你当前登录的用户,权限也会导致比较诡异的问题。这个最后一步要格外注意下。

运行

先将nginx restart一下:

service nginx restart

运行如下命令后,使用浏览器看看吧

nohup gunicorn blog_project.wsgi:application -b 127.0.0.1:8080 >gunicorn_out.log &


开机启动

gunicorn运行,需要加入到开机启动中:
并且加入到开机启动相关的 /etc/rc.local 中,
在exit 0的前面填入:

nohup /root/.virtualenvs/django/bin/gunicorn  --chdir /var/ftp_root/web/scrapy_smzdm_web scrapy_smzdm_web.wsgi:application -b 127.0.0.1:8080>gunicorn_out.log &

其中gunicorn,一定要把目录也要跟上,否则系统找不到目录。一般目录时位于项目所用虚拟目录的bin下。我这里是:/root/.virtualenvs/django/bin/gunicorn

--chdir /var/ftp_root/web/scrapy_smzdm_web 意思是切换到项目所在的目录


关于部署的流程这篇文章讲的也比较详细,请参考:
http://blog.csdn.net/autoliuweijie/article/details/50286463
关于配置服务器的整个流程,这篇文章写的相当详细,不过是基于Ubuntu的,从0开始配置:
http://zmrenwu.com/post/20/

本文配置文件参考
http://blog.csdn.net/zhu_free/article/details/50522868

转载于:https://my.oschina.net/u/2396236/blog/1549613

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值