Nginx加uWSGi部署Django服务器
首先是使用nginx和uwsgi的优点
1.web服务器使用nginx,优点是轻量级,抗高并发,速度快
2.uWSGI优点是性能块,内存占用低,详尽的日志功能与高度可定制
3.*关于pythonweb开发的wsgi知识推荐看uwsgi+nginx部署django
之前在网上找到很多教程,帮助部署django项目到生产环境,
但是大多数教程都是不能用的,或者是部署过程中出错自己解
决不了的,后来在bilibili找到了一个视频教程,成功将项目
部署到服务器上,因此想将过程记录下来,一来以后再需要用
时不用再从头观看视频,二来也希望给大家到帮助。废话不多说,
开始介绍过程,在这之前,容我宣传一波uwsgi+nginx部署django
- 安装环境 : 阿里云服务器,ubuntu16.04
- python版本 :python3,django2.0
- 项目位置 :/home/
- 项目名称 :blog (app : MyBlog)
第一步:安装并测试uWSGI
-
安装uwsgi
使用命令
pip3 install uwsgi
安装出错时尝试安装python开发包
-
测试uwsgi
进入平时工作目录例如/home
,新建一个python测试文件#test.py def application(env,start_response): start_response('200 OK',[('Content-Type','text / html' )]) return [b"Hello World"]
之后在该目录下运行测试命令
uwsgi --http :8001 --wsgi-file test.py
若提示该端口已被占用,可使用以下命令关闭uwsgi进程
ps -aux | grep uwsgi |awk '{print $2}'|xargs kill -9
开启服务器8001端口后,使用服务器公网ip与端口号访问,浏览器返回helloworld即表示uwsgi正常工作
测试项目连接uwsgi
uwsgi --chdir /home/blog --home /home/env --http :8001 -- module blog.wsgi:application
若部署是没有使用虚拟环境,则--home /home/env
可以省略
此时访问ip地址与端口号可以发现,项目已经可以访问,但是并没有静态内容,这是因为uwsgi不能处理静态文件,因此才需要使用nginx
第二步: 安装配置nginx
安装nginx
使用命令
apt-get install nginx
-
配置nginx
进入nginx安装目录下,并查看文件cd /etc/nginx/ ls
可以看到两个文件夹,分别是可用得nginx配置所在文件夹
sites-available
以及已启用配置文件夹sites-enabled
进入可用配置目录,新建文件
cd sites-available/ vim mysite.conf
添加以下内容
server { listen 端口,一般为80端口; server_name ip地址; charset utf-8; client_max_body_size 75M; location /static { alias 静态文件目录; } location /media { alias /home/blog/media; } location / { uwsgi_pass 127.0.0.1:8001;#uwsgi使用端口 include /etc/nginx/uwsgi_params; } }
第三步:配置并启动uwsgi
-
进入
/home
目录,创建文件夹并创建配置文件cd /home mkdie mysite_uwsgi cd /mysite_uwsgi vim mysite.ini
-
添加以下内容
[uwsgi] chdir = /home/blog home = /home/env #若没使用虚拟环境,去掉这一行 module = blog.wsgi:application master = True processes = 4 #使用进程数 harakiri = 60 max-requests = 5000 socket = 127.0.0.1:8001 uid = 1000 gid = 2000 pidfile = /home/mysite_uwsgi/master.pid daemonize = /home/mysite_uwsgi/mysite.log vacuum = True
启动uwsgi
uwsgi --ini /home/mysite_uwsgi/mysite.ini
可以使用以下命令检查uwsgi是否启动成功
ps -aux | grep uwsgi
当启动进程数为5个时,uwsgi启动成功
第四步:启动nginx d
-
创建软连接
ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf
使用以下命令查看配置是否有问题
nginx -t
重启nginx服务
service nginx restart
此时直接使用ip地址即可访问项目