nginx+uwsgi+Django(基于CentOS)

参考文档:http://www.cnblogs.com/fnng/p/5268633.html

生产上部署Django

环境:项目路径:/home/python27/blog_project

Python: 2.7.10 Django:1.8.2

 

1、安装uwgs

uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。

uWSGI的主要特点如下

超快的性能

低内存占用(实测为apache2的mod_wsgi的一半左右)

多app管理(终于不用冥思苦想下个app用哪个端口比较好了-.-)

详尽的日志功能(可以用来分析app性能和瓶颈)

高度可定制(内存大小限制,服务一定次数后重启等

 

[root@MyServer blog_project]# pip install uwsgi

[root@MyServer blog_project]# vim test.py 创建测试文件

def application(env, start_response):

start_response('200 OK', [('Content-Type','text/html')])

return ["Hello World"]

[root@MyServer blog_project]# uwsgi --http :8004 --wsgi-file test.py 此处会有警告,可忽略

[root@MyServer blog_project]# uwsgi --http :8004 --chdir /home/python27/blog_project/ --wsgi-file blog_project/wsgi.py

2、安装nginx环境

安装省略

测试:[root@MyServer blog_project]# curl -I 127.0.0.1 出现200即可

HTTP/1.1 200 OK

 

3、整体调试

nginx+uwsgi+Django,将三者结合起来。

 

[root@MyServer blog_project]# cat blog_project/uwsgi.ini 创建uwsgi.ini配置文件

[uwsgi]

socket = :8001

chdir = /home/python27/blog_project

module = blog_project.wsgi

master = true

processes = 4

vacuum = true

[root@MyServer blog_project]# uwsgi --ini blog_project/uwsgi.ini 启动uwsgi服务

[root@MyServer nginx]# egrep -v "^$|#" conf/nginx.conf nginx配置文件

user www;

worker_processes 1;

error_log logs/error.log;

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

server {

listen 80;

server_name localhost;

charset UTF-8;

client_max_body_size 75M;

location ~/ {

uwsgi_pass 103.XX.XX.78:8001;

include /usr/local/nginx/conf/uwsgi_params;

}

location ^~/static {

expires 30d;

autoindex on;

add_header Cache-Control private;

alias /static/;

}

}

}

这里注意配置location ^~/static {,否则admin的静态文件加载有问题

 

[root@MyServer nginx]# ./sbin/nginx -s reload 重启nginx服务

 

posted @ 2017-12-17 20:23  wang_wei123  阅读(214)  评论(0编辑  收藏  举报