可参考博客:https://blog.51cto.com/gaowenlong/1887997
https://blog.csdn.net/z406245159/article/details/72821285
https://www.cnblogs.com/jsonhc/p/7199295.html?utm_source=itdadao&utm_medium=referral

负载均衡:
A---应用服务器:运行项目的服务器 同一个项目 单独的存在的时候正常运行项目 web服务器运行 192.168.1.186
(上面有 nginx ,uwsgi, 虚拟环境 ,80端口 ,mysql数据库 )
B----应用服务器:运行项目的服务器 同一个项目 单独的存在的时候正常运行项目 web服务器运行 192.168.1.187
C---应用服务器:运行项目的服务器 同一个项目 单独的存在的时候正常运行项目 web服务器运行 192.168.1.188
D---反向代理服务器:192.168.1.189,用户通过访问p服务器的地址之后间接的来访问A/B/C应用服务器其中的一台服务器的项目
E---服务器 安装mysql数据库 47.100.xxx.xxx如何去做反向代理配置nginx web服务器

根据之前做的,如今有两台web服务器 1.186和1.187 。 负载均衡服务器1.189只安装NGINX

先确认189的NGINX能正常运行

一对一的反向代理 (了解即可)

当url 匹配路径的时候 /
一对一的反向代理 访问192.168.1.189 ---> 187
proxy_pass http://192.168.1.187;

vim /etc/nginx/conf.d/default.conf

192.168.1.189/admin/login
访问 (此时访问的是187的内容)

这是186的界面(为了区别187)

一对多 负载均衡 (186,187)

1、权重的

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况

upstream local_servers {server 192.168.1.187:8996 weight=1;server 192.168.1.185:8997 weight=1;server 192.168.1.185:8997 weight=1;
}upstream local_servers1 {server 192.168.1.187 weight=1;server 192.168.1.185 weight=1;server 192.168.1.185 weight=1;
}server {listen       80;server_name  localhost;charset utf-8;location / {proxy_pass http://local_servers1;proxy_set_header Host $host;       // $host就是nginx代理服务器proxy_set_header X-Real-IP $remote_addr;   //客户端真实ipproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;               //代理缓存删除}}

#出现的频率大概是1:1。这就是upstream中weight的作用,表示weight表示权重,权重越大,请求转发到这个地址的概率就越大。

修改后重启 systemctl restart nginx.service

访问,看效果

分割线=

2、ip_hash的

将刚才的权重注释掉,换成ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

当访问的时候会生成个session值 ,写在数据库里的

管理员在登录的时候把用户名存session数据库中,生成一条session数据的时候,session_data:用户名, session_key:django
自动生成写入数据库中django_session , 同时又把session_key存储到了cookie


可看出 lvn开头的sessionid 是存在数据库里的

此时当web项目都访问同一个数据库的时候,使用weight是没有问题的。 但是如果访问的是不同的数据库,比如都使用自身机器的数据库,这时候会出问题,你访问页面的时候,他会访问两台数据库的内容。他会一直循环在登录页面。 使用ip_hash能处理session问题
session 默认数据是存储在数据库中,存储数据的位置是可以改变存储到指定服务器的某个文件中,需要配置django只能用ip_hash

小结:

1、如果多台应用服务器连接的是同一台服务器上的数据库的话,使用权重,分配IP_Hash 都可以
2、如果多台应用服务器连接的是不同服务器的数据库,那么使用权重的分配方式就出问题了,那么可以使用的方式 ip_hash解决问题

END

Django项目部署(四)NGINX实现负载均衡相关推荐

  1. Django项目部署 uwsgi+nginx 负载均衡

    部署示意图 uwsig 第一步:安装uwsig pip install uwsgi 第二步:配置uwsgi 手动在项目根目录下新建文件uwsgi.ini [uwsgi]# 使用nginx连接时使用 # ...

  2. 面试宝典六-- 项目部署(linux环境搭建,springboot项目部署 ,vue项目部署,nginx负载均衡)

    环境准备 实际开发中,项目肯定是部署在一个个的linux系统服务器中的,学习过程中,可以在自己电脑上安装虚 拟机然后配置linux操作系统进行模拟项目部署,当然也可以花费较小费用使用各种平台提供的云服 ...

  3. Nginx之负载均衡(四)

    在上一篇博客我们介绍了 Nginx 一个很重要的功能--代理,包括正向代理和反向代理.这两个代理的核心区别是:正向代理代理的是客户端,而反向代理代理的是服务器.其中我们又重点介绍了反向代理,以及如何通 ...

  4. docker nginx 配置负载均衡

    在上篇的文章中我们介绍了docker nginx配置简单的代理 在这篇文章我们介绍docker 利用nginx配置负载均衡 所谓的负载均衡是两台服务器,或者是多台服务器上面部署项目,但是访问的方式是通 ...

  5. Django项目部署在Centos7

    把Django项目部署在Centos7下 先有一个Django项目 一个员工管理系统(ems) 员工管理系统 使用VMware创建一个虚拟的Linux系统 Centos7下安装MySql5.7 详细安 ...

  6. Django项目部署(nginx1.18+uwgsi)

    Django项目部署: 9.1uwsgi 遵循wsgi协议的web服务器 9.1.1uwsgi的安装 pip install uwsgi 9.1.2uwsgi的配置 项目部署时,需要把settings ...

  7. Nginx网络负载均衡,负载均衡,网络负载,网络均衡

    本节就聊聊采用Nginx负载均衡之后碰到的问题: Session问题 文件上传下载 通常解决服务器负载问题,都会通过多服务器分载来解决.常见的解决方案有: 网站入口通过分站链接负载(天空软件站,华军软 ...

  8. Nginx+keepalived负载均衡高可用篇第③版

    Nginx+keepalived负载均衡高可用篇第③版 对付中.小型企业,假如没有资金去购买昂贵的四/七层负载均衡交换机,那么Nginx是不错的七层负载均衡选择,并且可以通过Nginx + Keepa ...

  9. Nginx+Tomcat负载均衡、动静分离集群

    Nginx+Tomcat负载均衡.动静分离集群 一.Nginx实现负载均衡原理 二.Nginx 配置反向代理的主要参数 三.Nginx 动静分离实现原理和优势 1.Nginx 静态处理优势 2.动静分 ...

  10. windows 下使用nginx 实现负载均衡

    负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...

最新文章

  1. swift3.0UIAlertController使用方法
  2. 分布式系统的事务处理(推荐)
  3. 从Google Wave和XML看软件复杂性之争,互联网营销
  4. boost::geometry::model::infinite_line用法的测试程序
  5. Mybatis源码分析之(五)mapper如何将数据库数据转换成java对象的
  6. MVVM是什么?谈谈你对MVVM的理解?
  7. MVC5 Entity Framework学习参加排序、筛选和排序功能
  8. python object和type的关系-Python 的 type 和 object 之间是怎么一种关系?
  9. python random模块安装_Python中的For循环和Random模块
  10. 大数据hadoop,spark,flink等经典电子书PDF下载
  11. 基于信息论的特征选择算法综述
  12. 通过汇编程序理解汇编和链接过程
  13. TMOD、SCON、PCON寄存器的配置
  14. vc 键盘按键KeyValue值
  15. 绝对定位元素的margin如何设置
  16. 【福利继续无套路】整理的一系列IT视频
  17. 小米4可以刷入linux,小米4刷入SailfishOS系统图文教程(附工具)
  18. 指纹支付相关的细节处理
  19. Git工具和CODING平台
  20. 前端基础知识(grid布局)

热门文章

  1. CPLEXJava 3.简单的线性规划问题
  2. 【Adobe After Effects中英文转换2019——2023版】
  3. LV2之-----canvas 画布实现 自转时钟 大转盘
  4. office2019选框虚线_怎么在word表格中显示和隐藏表格中的虚线框
  5. 记录DNS未响应 / IPv4无Internet访问权限 / WIFI连接正常但无网络
  6. oracle设置快捷键,打印sf输出select * from
  7. c语言常用变量,c语言基本数据类型(c语言常用变量类型)
  8. 8个苹果手机自带小技巧,你知道哪几个?
  9. 用java实现PTA古风版
  10. 静态资源放置于独立域名之下