django+uwsgi+nginx配置

 当咱们开发完django的应用程序后,须要将其部署到服务器上,部署过程当中可能出现各类各样的问题,所以想把本身遇到的问题记录下来,以便在之后再遇到能够快速的查阅。nginx

uwsgi安装:django

pip安装:pip install uwsgi      测试:uwsgi --version浏览器

nginx安装:缓存

下载:wget http://nginx.org/download/nginx-1.6.2.tar.gz安全

依赖包安装:服务器

    yum install -y pcre pcre-devel app

    yum install -y zlib zlib-devel socket

    yum install -y openssl openssl-develpost

解压:tar -zxvf nginx-1.6.2.tar.gz -C /usr/local/测试

配置:./configure --prefix=/usr/local/nginx

编译安装:make && make install

(备注:以上uwsgi安装和nginx安装均需依赖C的编译环境,先配置环境)

启动:/usr/local/nginx/sbin/nginx

检查是否启动:ps -ef|grep nginx

 

关闭防火墙:chkconfig iptables off(虚拟机下能够直接关闭,实际生产环境下由于有物理防火墙,因此也能够关闭,若是安全限制,能够单独开放所需端口)

页面访问:http://主机IP:端口 (出现欢迎页面)

uwsgi配置文件uwsgi.ini:

chdir=/home/zhangwei/ywpt/Django-1.4.20/untitled1
# 指定项目的application
module=untitled1.wsgi:application
# 指定sock的文件路径
socket=/home/ywpt/Django-1.4.20/untitled1/script/uwsgi.sock
# 进程个数
workers=5
pidfile=/homeywpt/Django-1.4.20/untitled1/script/uwsgi.pid
# 指定IP端口
http=192.168.2.129:8000
# 指定静态文件
static-map=/static=/home/ywpt/Django-1.4.20/untitled1/static
#static=/home/ywpt/Django-1.4.20/untitled1/static
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 启用主进程
master=true
# 自动移除unix Socket和pid文件当服务中止的时候
vacuum=true
# 序列化接受的内容,若是可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=4096
# 设置日志目录
daemonize=/home/ywpt/Django-1.4.20/untitled1/script/uwsgi.log

nginx配置文件nginx.conf:

server {
listen 80;
server_name 192.168.2.129;
charset utf-8;
access_log logs/bdmp.log main;

location / { # 这个location就和我们Django的url(r'^admin/', admin.site.urls),
include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通信的
uwsgi_connect_timeout 30; # 设置链接uWSGI超时时间
uwsgi_pass unix:/home/zhangwei/ywpt/Django-1.4.20/untitled1/script/uwsgi.sock; # 指定uwsgi的sock文件全部动态请求就会直接丢
}

}

配置完成后,从新启动uwsgi、nginx,页面再次访问,就OK啦

不过须要注意的地方有STATIC_ROOT、STATIC_URL、STATICFILES_DIRS也须要配置,同时可能由于Debug=false等缘由致使静态文件不能正常加载。

若在尝试过程当中,发现静态文件出现304报错,则由于缓存影响,更换浏览器或清除缓存便可。

相关文章
相关标签/搜索