uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。
uwsgi.ini文件的基本参照格式如下
[uwsgi]
# python 解释器位置 (完整路径) (需要大家按照自己的改一下) whereis python 查找路径
pythonpath = /usr/local/bin/python3.7
# uwsgi 端口
socket = :8080
#http = :8080
# 项目云服务器的目录 (需要大家按照自己的改一下)
chdir = /home/project/DCServer
# 项目中wsgi.py文件的目录,相对于项目根目录 (需要大家按照自己的改一下)
wsgi-file = drfdemo02/wsgi.py
# 开启master, 将会多开一个管理进程, 管理其他服务进程
master = true
# 工作进程数
processes = 4
# 每个工作进程的线程数
threads = 2
# 指定日志文件(会自动创建)。这个很重要,如果uwsgi出现错误,可以通过日志文件来查错
daemonize = uwsgi.log
pidfile=uwsgi.pid
配置保存完毕之后,在Ubuntu服务器输入uwsgi --ini uwsgi.ini
进行服务器启动
输入vi uwsgi.log
和vi uwsgi.pid
就可以查看错误日志和运行进程的pid
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
nginx需要下载安装,在Ubuntu中如下代码
apt install nginx
安装完毕之后需要准备nginx配置文件(dcs_nginx.conf),以下是nginx文件的配置范例,监听一个端口就写一个server
server {
listen 80;#监听80端口,也就是网页前端端口
server_name localhost;
# 日志
access_log /var/log/nginx/dcs80_access.log;
error_log /var/log/nginx/dcs80_error.log;
location / {
allow all;
# 改路径
root /home/project/DCShtml/dist;
try_files $uri $uri/ /index.html;
index index.html;
}
location ~ .*\.(js|css|png|jpg|gif)$
{
# 改路径
root /home/project/DCShtml/dist;
if (-f $request_filename) {
expires 1d;
break;
}
}
}
server {
include mime.types;
default_type application/octet-stream;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
server_tokens off;
access_log on;
listen 8000;
charset UTF-8;
access_log /var/log/nginx/dcs8000_access.log;
error_log /var/log/nginx/dcs8000_error.log;
client_max_body_size 75M;
location /static {
expires 30d; # 30天过期
add_header Cache-Control private;
# 改路径
alias /home/project/DCServer/static;
}
location /media {
expires 30d;
add_header Cache-Control private;
# 改路径
alias /home/project/DCServer/media;
}
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
}
}
这个范例适配的话主要修改地址和端口号即可,准备好nginx配置文件之后,需要进入nginx文件夹进行配置,默认是在etc文件夹,进入/etc/nginx,然后输入cd conf.d
进入此文件夹,将准备的nginx配置文件拷贝入此目录文件夹。
然后cd ..
返回上一级,输入vi nginx.conf
,找到这两条导入
注意图中第二行需要注释,具体原因我不清楚,可能是不被需要
然后按ESC
、shift 加 :
、再输入wq
进行保存退出
第一次启动nginx需要输入nginx
,已经启动过的输入nignx -s reload
进行重启,如此便可完成django的uwsgi和nginx服务器配置