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服务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗