Django项目部署(四)NGINX实现负载均衡
可参考博客: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实现负载均衡相关推荐
- Django项目部署 uwsgi+nginx 负载均衡
部署示意图 uwsig 第一步:安装uwsig pip install uwsgi 第二步:配置uwsgi 手动在项目根目录下新建文件uwsgi.ini [uwsgi]# 使用nginx连接时使用 # ...
- 面试宝典六-- 项目部署(linux环境搭建,springboot项目部署 ,vue项目部署,nginx负载均衡)
环境准备 实际开发中,项目肯定是部署在一个个的linux系统服务器中的,学习过程中,可以在自己电脑上安装虚 拟机然后配置linux操作系统进行模拟项目部署,当然也可以花费较小费用使用各种平台提供的云服 ...
- Nginx之负载均衡(四)
在上一篇博客我们介绍了 Nginx 一个很重要的功能--代理,包括正向代理和反向代理.这两个代理的核心区别是:正向代理代理的是客户端,而反向代理代理的是服务器.其中我们又重点介绍了反向代理,以及如何通 ...
- docker nginx 配置负载均衡
在上篇的文章中我们介绍了docker nginx配置简单的代理 在这篇文章我们介绍docker 利用nginx配置负载均衡 所谓的负载均衡是两台服务器,或者是多台服务器上面部署项目,但是访问的方式是通 ...
- Django项目部署在Centos7
把Django项目部署在Centos7下 先有一个Django项目 一个员工管理系统(ems) 员工管理系统 使用VMware创建一个虚拟的Linux系统 Centos7下安装MySql5.7 详细安 ...
- Django项目部署(nginx1.18+uwgsi)
Django项目部署: 9.1uwsgi 遵循wsgi协议的web服务器 9.1.1uwsgi的安装 pip install uwsgi 9.1.2uwsgi的配置 项目部署时,需要把settings ...
- Nginx网络负载均衡,负载均衡,网络负载,网络均衡
本节就聊聊采用Nginx负载均衡之后碰到的问题: Session问题 文件上传下载 通常解决服务器负载问题,都会通过多服务器分载来解决.常见的解决方案有: 网站入口通过分站链接负载(天空软件站,华军软 ...
- Nginx+keepalived负载均衡高可用篇第③版
Nginx+keepalived负载均衡高可用篇第③版 对付中.小型企业,假如没有资金去购买昂贵的四/七层负载均衡交换机,那么Nginx是不错的七层负载均衡选择,并且可以通过Nginx + Keepa ...
- Nginx+Tomcat负载均衡、动静分离集群
Nginx+Tomcat负载均衡.动静分离集群 一.Nginx实现负载均衡原理 二.Nginx 配置反向代理的主要参数 三.Nginx 动静分离实现原理和优势 1.Nginx 静态处理优势 2.动静分 ...
- windows 下使用nginx 实现负载均衡
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...
最新文章
- swift3.0UIAlertController使用方法
- 分布式系统的事务处理(推荐)
- 从Google Wave和XML看软件复杂性之争,互联网营销
- boost::geometry::model::infinite_line用法的测试程序
- Mybatis源码分析之(五)mapper如何将数据库数据转换成java对象的
- MVVM是什么?谈谈你对MVVM的理解?
- MVC5 Entity Framework学习参加排序、筛选和排序功能
- python object和type的关系-Python 的 type 和 object 之间是怎么一种关系?
- python random模块安装_Python中的For循环和Random模块
- 大数据hadoop,spark,flink等经典电子书PDF下载
- 基于信息论的特征选择算法综述
- 通过汇编程序理解汇编和链接过程
- TMOD、SCON、PCON寄存器的配置
- vc 键盘按键KeyValue值
- 绝对定位元素的margin如何设置
- 【福利继续无套路】整理的一系列IT视频
- 小米4可以刷入linux,小米4刷入SailfishOS系统图文教程(附工具)
- 指纹支付相关的细节处理
- Git工具和CODING平台
- 前端基础知识(grid布局)
热门文章
- CPLEXJava 3.简单的线性规划问题
- 【Adobe After Effects中英文转换2019——2023版】
- LV2之-----canvas 画布实现 自转时钟 大转盘
- office2019选框虚线_怎么在word表格中显示和隐藏表格中的虚线框
- 记录DNS未响应 / IPv4无Internet访问权限 / WIFI连接正常但无网络
- oracle设置快捷键,打印sf输出select * from
- c语言常用变量,c语言基本数据类型(c语言常用变量类型)
- 8个苹果手机自带小技巧,你知道哪几个?
- 用java实现PTA古风版
- 静态资源放置于独立域名之下