django+uwsgi+nginx配置

 当我们开发完django的应用程序后,需要将其部署到服务器上,部署过程中可能出现各种各样的问题,因此想把自己遇到的问题记录下来,以便在以后再遇到可以快速的查阅。

uwsgi安装:

pip安装:pip install uwsgi      测试:uwsgi --version

nginx安装:

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

依赖包安装:

    yum install -y pcre pcre-devel

    yum install -y zlib zlib-devel

    yum install -y openssl openssl-devel

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

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

扫描二维码关注公众号,回复: 2506298 查看本文章

编译安装: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报错,则因为缓存影响,更换浏览器或清除缓存即可。

猜你喜欢

转载自www.cnblogs.com/zw-busines/p/9402252.html