Nginx配置和使用,均衡负载

安装指令: sudo apt-get install nginx
查看是否安装成功:nginx -v

默认安装位置:/etc/nginx/ 该目录下

nginx 四种 nginx-s_nginx 四种

启动nginx: service nginx start
关闭nginx: sudo nginx -s stop
重启nginx: sudo sbin/nginx –s reload

注:启动nginx后,还需要启动uwsgi配合一起开启项目
uwsgi参考路径:

注:如是服务器上部署配置域名则需要云服务器指定解析www 和 直接解析,在nginx配置后访问域名可以不用手动输入www同样会重定向到www域名

创建配置文件路径:/etc/nginx/conf.d/ 目录下存放nginx配置文件,(也有其他存放配置文件路径大同小异看个人使用)。
进入到该路径后创建配置文件,django为文件名,.conf是配置文件的后缀

sudo vim django.conf

创建后是vim 模式,不会的同学可以网上找一下指令很简单的。将配置内容粘贴到里面 :wq退出

server {           // 将域名重定向到附带www.
       listen 80;
       #同下面www.域名.com
       server_name baidu.com;
       return 301 http://www.zhouqitechnology.com$request_uri;
 }
  
 server{
      # 监听端口
      listen 80;
      # 域名
      server_name www.baidu.com; (127.0.0.1)开发时使用
      charset utf-8;
      # 请求最大大小
      client_max_body_size 75M;
  
      # 把所有请求转到
      location / {
      # 包含 uwsgi的请求参数
      include uwsgi_params;
  
      # 转交请求给 uwsgi,配置需要同uwsgi配置当中监听的端口一致
      uwsgi_pass 127.0.0.1:8000;
      }
  
      # 指定静态文件存放的目录
      location /static {
      # 静态文件存放路径
      alias /home/ubuntu/python/static/;
      }
 }

静态文件存放,是因为django框架在项目正式使用是需要将settings.py文件将DEBUG=False设置为false关闭debug模式
django框架在关闭该模式以后,静态文件将无法从代码指定的路径获取静态文件,此时需要nginx做静态文件储存

进入存放静态文件路径后创建名为static文件夹,并给该文件添加读写运行权限

sudo chmod 777 static

在django项目的配置文件settings.py文件中还需要添加指定该路径选项

STATIC_ROOT = ‘/home/ubuntu/python/static’ 路径根据部署创建的存放路径

进入django项目的根目录中执行指令,执行该指令后,会将项目中所有的静态文件收集到配置文件指定的存放路径中

python3 manage.py collectstatic

均衡负载

nginx 四种 nginx-s_配置文件_02

在同一个项目中增加多一个uwsgi配置文件。并启动,作为第二个uwsgi服务器
注:第二个uwsgi配置文件名字不能和第一个uwsgi配置文件同名,uwsgi配置文件中的端口号不能相同,日志文件和PID文件命名也不能相同。

均衡负载思路:开启多个uwsgi服务器,在nginx接收到请求时,会均匀分配到空闲的uwsgi服务器承载访问。

均衡负载nginx配置方法
在上述的nginx配置文件(django.conf)最上面增加均衡负载选项配置

upstream django {    #均衡负载,上游服务器,django为自定义名字
       # 第一台uwsgi服务器
      server 127.0.0.1:8000
      # 第二台uwsgi服务器
      server 127.0.0.1:8001
 }

并将该配置文件中的uwsgi_pass配置项改为指定到上游服务器中

uwsgi_pass django;

在启动分别启动多个对应的uwsgi服务器,和nginx即可实现均衡负载

需要参考uwsgi配置的可以看我上一张的uwsgi配置