nginx+uwsgi+Django(基于CentOS)
Posted wang_wei123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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服务
以上是关于nginx+uwsgi+Django(基于CentOS)的主要内容,如果未能解决你的问题,请参考以下文章