-
Nginx是轻量级的高性能Web服务器,提供了诸如HTTP反向代理、负载均衡等一系列重要特性
-
C语言编写,执行效率高
-
作用:
- -负载均衡,多台服务器轮流处理 请求
- -反向代理
-
原理:
- -客户端请求nginx,再由nginx将请求转发uWSGI运行的django
安装
sudo apt install nginx
可考虑换成国内源
查看是否安装成功
:~$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
配置
输入127.0.0.1
后会出现welcome to nginx……
表示成功
修改nginx的配置文件 /etc/nginx/sites-enabled/default;
sudo vim
该文件
或sudo nano /etc/nginx/sites-enabled/default
# 在server节点下添加新的location项,指向uwsgi的ip与端口
server {
···
location / {
uwsgi_pass 127.0.0.1:8000; # 重定向到127.0.0.1:8000端口
include /etc/nginx/uwsgi_params; # 将所有参数转到uwsgi下
}
···
}
sudo nginx -t
会提示哪行有语法错误
启动/停止
启动|停止|重启
$ sudo /etc/init.d/nginx start|stop|restart|status
# 或
$ sudo service nginx start|stop|restart|status
注意:nginx配置只要修改,就要进行重启,否则不生效
修改uWSGI配置
因为原本接收的是http请求,现在传入的是uwsgi格式
uWSGI需要以socket模式启动
uwsgi.ini
# http=127.0.0.1:8000
socket=127.0.0.1:8000
注:改完后重启uWSGI
修改完后应访问127.0.0.1:80/
端口,此时由nginx接收,然后传给uWSGI,uWSGI以8000端口接 收
nginx静态文件配置
-
创建新路径-主要存放Django所有静态文件 如:
/home/tarena/项目名_static/
-
在
Django settings.py
中添加新配置STATIC_ROOT = '/home/文件名/项目名_static/static'
# 注意 此配置路径为 存放所有正式环境中需要的静态文件 -
进入项目,执行
python3 manage.py collectstatic
执行该命令后,Django将项目中所有的静态文件复制到STATIC_ROOT中,包括Django内建的静态文件!!!只要有新的添加就得重新运行一边!!!
Nginx配置中添加新配置
# file : /etc/nginx/sites-enabled/default
# 新添加location /static 路由配置,重定向到指定的第一步创建的路径
server {
···
location /static {
# root 第一步文件夹的绝对路径
root /home/文件名/项目名_static;
}
···
}
如果还是没显示静态资源
把 nginx.conf 里的第一行注释掉,改为 user root;