LVS集群和nginx负载均衡

目录

1、基于 CentOS 7 构建 LVS-DR 群集。

2、配置nginx负载均衡。


1、基于 CentOS 7 构建 LVS-DR 群集。

1.部署LVS负载调度器
1>安装配置工具
[root@node6 ~]# yum install -y ipvsadm
2>配置LVS虚拟IP(VIP地址)
[root@node6 ~]# ifconfig ens33:200 192.168.111.200 netmask 255.255.255.255 up
3>手工执行配置添加LVS服务并增加两台RS
[root@node6 ~]# ipvsadm -A -t 192.168.111.200:80 -s rr
[root@node6 ~]# ipvsadm -a -t 192.168.111.200:80 -r 192.168.111.7:80 -g
[root@node6 ~]# ipvsadm -a -t 192.168.111.200:80 -r 192.168.111.8:80 -g
[root@node6 ~]# ipvsadm -Ln			# 显示内核中的虚拟服务规则
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.111.200:80 rr
  -> 192.168.111.7:80             Route   1      0          0         
  -> 192.168.111.8:80             Route   1      0          0  

2.部署web服务器(两台机器同时部署)
1>安装web服务器
[root@node7 ~]# yum install -y httpd
2>写网页文件
[root@node7 ~]# echo "web is `hostname -I`" > /var/www/html/index.html
[root@node7 ~]# systemctl start httpd
3>在客户端就行测试
[root@yx ~]# curl 192.168.111.7
web is 192.168.111.7 
[root@yx ~]# curl 192.168.111.8
web is 192.168.111.8
4>手工在RS端绑定VIP,并且添加本机访问VIP的路由
[root@node7 ~]# ifconfig lo:200 192.168.111.200 netmask 255.255.255.255 up
[root@node7 ~]# route add -host 192.168.111.200 dev lo:200
[root@node7 ~]# route -n		# 查看路由
5>手工在RS端抑制ARP响应(调整内核参数,关闭arp响应)
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/ens33/arp_announce

另一种方法:使用arptables实现抑制arp
[root@node8 ~]# yum install -y arptables
[root@node8 ~]# arptables -A INPUT -d 192.168.111.200 -j DROP
[root@node8 ~]# arptables -A OUTPUT -s 192.168.111.200 -j mangle --mangle-ip-s 192.168.111.8
[root@node8 ~]# arptables -L -n --line-number	# 查看
# --line-number 显示行号
[root@node8 ~]# arptables-save > /etc/sysconfig/arptables 
[root@node8 ~]# systemctl enable --now arptables.service

3.测试(在客户端进行测试)
[root@yx ~]# for ((i=1;i<=6;i++))
> do
> curl 192.168.111.200
> done
web is 192.168.111.8 
web is 192.168.111.7 
web is 192.168.111.8 
web is 192.168.111.7 
web is 192.168.111.8 
web is 192.168.111.7 

2、配置nginx负载均衡。

1.准备两台后端web服务器(同时进行)
# 把nginx的rpm包上传至服务器中,然后进行安装
[root@node7 ~]# yum install -y nginx
[root@node7 ~]# echo "web is `hostname -I`" > /usr/share/nginx/html/index.html
[root@node7 ~]# systemctl start nginx

2.负载均衡配置
[root@node6 ~]# yum install -y nginx-1.22.0-1.el7.ngx.x86_64.rpm 
[root@node6 ~]# vim /etc/nginx/conf.d/vhost.conf
server {
    listen       80;
    server_name  www.open.cn;
    location / {
        proxy_pass http://web_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
upstream web_server {
    server 192.168.111.7;
    server 192.168.111.8;
}
[root@node6 ~]# nginx -t
[root@node6 ~]# systemctl start nginx

3.测试
[root@yx ~]# vim /etc/hosts
192.168.111.6 www.open.cn
[root@yx ~]# for ((i=1;i<=6;i++)); do curl www.open.cn; done
web is 192.168.111.7 
web is 192.168.111.8 
web is 192.168.111.7 
web is 192.168.111.7 
web is 192.168.111.8 
web is 192.168.111.7 

 或者在PC端修改主机域名(C:\Windows\System32\drivers\etc/hosts)
192.168.111.6 www.open.cn
# 在浏览器上进行域名访问,访问的内容刷新之后会进行不断的变化,如下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/80632.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通讯录实现【C语言】

目录 前言 一、整体逻辑分析 二、实现步骤 1、创建菜单和多次操作问题 2、创建通讯录 3、初始化通讯录 4、添加联系人 5、显示联系人 6、删除指定联系人 ​7、查找指定联系人 8、修改联系人信息 9、排序联系人信息 三、全部源码 前言 我们上期已经详细的介绍了自定…

qsort函数详解

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解qsort函数&#xff0c;如果你觉得我写的不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 文章目录 一. qsort函数参数详解1.数组首元素地址base2.数组的元素个数num和元素所占内存空间大小w…

【数据结构OJ题】设计循环队列

原题链接&#xff1a;https://leetcode.cn/problems/design-circular-queue/ 1. 题目描述 2. 循环队列的概念和结构 为充分利用向量空间&#xff0c;克服"假溢出"现象的方法是&#xff1a;将向量空间想象为一个首尾相接的圆环&#xff0c;并称这种向量为循环向量。…

【100天精通python】Day41:python网络爬虫开发_爬虫基础入门

目录 专栏导读 1网络爬虫概述 1.1 工作原理 1.2 应用场景 1.3 爬虫策略 1.4 爬虫的挑战 2 网络爬虫开发 2.1 通用的网络爬虫基本流程 2.2 网络爬虫的常用技术 2.3 网络爬虫常用的第三方库 3 简单爬虫示例 专栏导读 专栏订阅地址&#xff1a;https://blog.csdn.net/…

OLED透明屏采购指南:如何选择高质量产品?

着科技的不断进步&#xff0c;OLED透明屏作为一种创新的显示技术&#xff0c;在各个行业中得到了广泛应用。 在进行OLED透明屏采购时&#xff0c;选择高质量的产品至关重要。在这篇文章中&#xff0c;尼伽将为您提供一个全面的OLED透明屏采购指南&#xff0c;帮助您了解关键步…

4.物联网LWIP之C/S编程

LWIP配置 服务器端实现 客户端实现 错误分析 一。LWIP配置&#xff08;FREERTOS配置&#xff0c;ETH配置&#xff0c;LWIP配置&#xff09; 1.FREERTOS配置 为什么要修改定时源为Tim1&#xff1f;不用systick&#xff1f; 原因&#xff1a;HAL库与FREERTOS都需要使用systi…

【力扣每日一题】2023.8.15 字符中的查找与替换

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目很长&#xff0c;简而言之就是检查字符串中对应索引的位置是否有特定的字符串&#xff0c;如果有&#xff0c;那么替换&#xff0c;返…

【Unity每日一记】关于五种范围检测方法的总结

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

==和equals方法之间的区别,hashcode的理解,String拼接,Spring拆分

==和equals方法之间的区别 字符串有字符串常量池的概念,本身就推荐使用String s="字符串", 这种形式来创建字符串对象, 而不是通过new关键字的方式, 因为可以把字符串缓存在字符串常量池中,方便下次使用,不用遇到new就在堆上开辟一块新的空间 有一对双胞胎姐妹,晓苑…

CVE-2015-5254漏洞复现

1.漏洞介绍。 Apache ActiveMQ 是美国阿帕奇&#xff08;Apache&#xff09;软件基金会所研发的一套开源的消息中间件&#xff0c;它支持 Java 消息服务&#xff0c;集群&#xff0c;Spring Framework 等。Apache ActiveMQ 5.13.0之前 5.x 版本中存在安全漏洞&#xff0c;该漏…

Java 集合详解

目录 1.集合体系结构 2.Collection集合 2.1 Collection集合 2.1.1 Collection基本方法 2.1.2 Collection遍历方式 2.1.2.1 迭代器遍历 2.1.2.2 增强for循环 2.1.2.3 Lambda表达式 3.List集合 3.1 List集合的基本方法 3.2 List集合的遍历方式 4.数据结构 4.1 数据结…

【C++11新特性】lambda表达式

文章目录 1. lambda表达式概念2. lambda表达式语法3. lambda表达式应用 1. lambda表达式概念 lambda表达式是一个匿名函数&#xff0c;恰当使用lambda表达式可以让代码变得简洁&#xff0c;并且可以提高代码的可读性。 见见lambda表达式的使用 现在要对若干商品分别按照价格和…

Maven之mirrorof范围

mirrorOf 是 central 还是 * 的问题 在配置阿里对官方中央仓库的镜像服务器时&#xff0c;我们使用到了 <mirror> 元素。 <mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>阿里云公共仓库</name><url>…

File 类的用法, InputStream和Reader, OutputStream和Writer 的用法

前言 普通的文件长这样&#xff1a; 其实目录也是一种特殊文件&#xff1a; 一、文件前缀知识 &#xff08;一&#xff09;绝对路径和相对路径 以盘符开头的的路径&#xff0c;叫做绝对路径&#xff0c;如&#xff1a;D:\360Downloads\cat.jpg 以.或..开头的路径&#xff0c…

uni-app的Vue.js实现微信小程序的紧急事件登记页面功能

主要功能实现 完成发生时间选择功能&#xff0c;用户可以通过日期选择器选择事件发生的时间。实现事件类型选择功能&#xff0c;用户可以通过下拉选择框选择事件的类型。添加子养殖场编号输入框&#xff0c;用户可以输入与事件相关的子养殖场编号。完成事件描述输入功能&#…

PSP - 基于扩散生成模型预测蛋白质结构 EigenFold 算法与环境配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132357976 Paper: EigenFold: Generative Protein Structure Prediction with Diffusion Models EigenFold 是用于蛋白质结构预测的扩散生成模型…

Python自动化实战之使用Selenium进行Web自动化详解

概要 为了完成一项重复的任务&#xff0c;你需要在网站上进行大量的点击和操作&#xff0c;每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中&#xff0c;我们将会介绍如何使用Python的Selenium库进行Web自动化&#xff0c;以及如何…

AlexNet阅读笔记

ImageNet classification with deep convolutional neural networks 原文链接&#xff1a;https://dl.acm.org/doi/abs/10.1145/3065386 中文翻译&#xff1a;https://blog.csdn.net/qq_38473254/article/details/132307508 使用深度卷积神经网络进行 ImageNet 分类 摘要 大…

【数据结构】如何用队列实现栈?图文详解(LeetCode)

LeetCode链接&#xff1a;225. 用队列实现栈 - 力扣&#xff08;LeetCode&#xff09; 本文默认读者已经掌握栈与队列的基本知识 或者先看我的另一篇博客&#xff1a;【数据结构】栈与队列_字节连结的博客-CSDN博客 做题思路 由于我们使用的是C语言&#xff0c;不能直接使用队…

ubuntu 部署 ChatGLM-6B 完整流程 模型量化 Nvidia

ubuntu 部署 ChatGLM-6B 完整流程 模型量化 Nvidia 初环境与设备环境准备克隆模型代码部署 ChatGLM-6B完整代码 ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型&#xff0c;基于 General Language Model (GLM) 架构&#xff0c;具有 62 亿参数。结合模型量化技术&#x…