本文假设你已经按照之前章节安装了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端口被占用
此时关闭占用80端口所在的服务,再重新启动即可(我的是80端口被apache服务占用,所以关闭服务)
此时打开网页,输入localhost,即可看到
接下来,更改下nginx的配置
vi /etc/nginx/nginx.conf
将user改成自己的账号
安装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&
然后再打开另一个终端重启nginx服务即可
service nginx restart
这样我们访问 http://localhost或者在外网访问example.com就可以访问我们的项目了。