Nginx反向代理配置+负载均衡集群部署

news2025/1/18 6:42:26

文章目录

    • 负载均衡+反向代理基础环境部署:
      • 什么是代理
      • 实验环境图
        • 流量过程
      • 环境部署
        • 准备两台Web服务器
          • 安装Nginx
          • 准备页面内容
          • 添加主机名
        • 代理服务器配置
      • 修改windos hosts文件
      • 测试:
        • 终端
        • 浏览器

负载均衡+反向代理基础环境部署:

什么是代理

正向代理既是通过代理服务器访问外网资源,而反向代理与之相反是将局域网的资源通过反向代理服务器提供给互联网用户浏览和使用等。

实验环境图

image-20230807204107216

流量过程

当客户端发起请求后通过Internet (本实验为NAT网卡)来到代理服务器上,代理服务器经算法选择后调用后端服务器响应并将流量返回给客户端。

环境部署

IP角色
192.168.110.135代理(负载均衡)服务器
192.168.110.137Web服务器1
192.168.110.134Web服务器2
192.168.110.1(Vmware-NAT网卡IP)客户端(Windows)

准备两台Web服务器

安装Nginx

可以选择RPM包安装和源码安装。RPM包安装这里不演示了,若不会源码安装的同学可以借鉴这一篇文章Nginx源码安装详细过程。

准备页面内容
echo "example.com Web2 `hostname -I`" > /usr/local/nginx/html/index.html 
echo "example.com Web1 `hostname -I`" > /usr/share/nginx/html/index.html

这里页面文件的具体路径根据自己配置文件中的定义。

添加主机名
vim /etc/nginx/nginx.conf
#将server下的server_name改为
server_name www.example.com
#检查配置文件语法
nginx -t
#重启服务
systemctl restart nginx

代理服务器配置

vim /etc/nginx/conf.d/proxy.conf
upstream web_pools{
  server 192.168.110.137:80 weight=1;
  server 192.168.110.134:80 weight=1;
}

server{
  listen 80;
  server_name www.example.in;
  location / {
        proxy_pass http://web_pools;
  }
}
#语法检查
nginx -t
#重启服务
systemctl restart nginx

修改windos hosts文件

路径:C:\Windows\System32\drivers\etc\hosts
192.168.110.135 www.example.in
若修改后无法保存,需要修改文件属性将只读去掉

测试:

终端

C:\Users\SuperMe>curl www.example.in
example.com Web2 192.168.110.134

C:\Users\SuperMe>curl www.example.in
example.com Web1 192.168.110.137

C:\Users\SuperMe>curl www.example.in
example.com Web1 192.168.110.137

C:\Users\SuperMe>curl www.example.in
example.com Web2 192.168.110.134

C:\Users\SuperMe>curl www.example.in
example.com Web2 192.168.110.134

C:\Users\SuperMe>curl www.example.in
example.com Web1 192.168.110.137

浏览器

image-20230807203017882

image-20230807203140937
剩下的事情交给刷新处理就能看到效果。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

16-3_Qt 5.9 C++开发指南_使用QStyle 设置界面外观_实现不同系统下的界面效果的匹配

文章目录 1. QStyle的作用(实现不同系统下的界面效果的匹配)2. Qt内置样式的使用3. 源码3.1 可视化UI设计3.2 mainwindow.cpp 1. QStyle的作用(实现不同系统下的界面效果的匹配) Qt 是一个跨平台的类库,相同的界面组件…

D455+VINS-Fusion+surfelmapping 稠密建图(三)

继续,由surfelmapping建立的点云生成octomap八叉树栅格地图 一、安装OctomapServer 建图包 安装插件 sudo apt-get install ros-melodic-octomap-ros sudo apt-get install ros-melodic-octomap-msgs sudo apt-get install ros-melodic-octomap-server sudo apt-…

js-1:JavaScript中的数据类型?存储上有啥差别

1、在JavaScript中,共有两种数据类型。 基本类型 复杂类型 区别在于:存储位置不同 2、基本类型 主要分为以下6种: Number String Boolean Undefined null Symbol Number : 数值最常见的证书类型格式则为十进制,还可以设置八进制&…

K8s中的PV和PVC和监控

1.PV和PVC PV:持久化存储,对存储资源进行抽象,对外提供可以调用的地方(类似:生产者) PVC:用于调用,不需要关心内部实现细节(类似:消费者) 2.实…

【Gitee的使用】Gitee的简单使用,查看/创建SSH公匙、创建版本库、拉取代码、提交代码

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 本篇文章简单介绍,如何在Gitee上面创建版本库、拉取…

搭建企业级BI系统有多快?奥威BI表现惊人

搭建BI系统需要建立一个可靠的数据仓库和针对分析工具/UI的数据结构。同时,这个过程需要不断地迭代优化与维护。主要有搭建环境、建设数仓和分析模型、设计数据可视化报表。 不难看出,从零开始搭建企业级BI系统是一个工作量大、程序繁琐的工程&#xff…

Jenkins 使用

Jenkins 使用 文章目录 Jenkins 使用一、jenkins 任务执行二、 Jenkins 连接gitee三、Jenkins 部署静态网站 一、jenkins 任务执行 jenkins 创建 job job的名字最好是有意义的 restart_web_backend restart_web_mysql[rootjenkins ~]# ls /var/lib/jenkins/ config.xml …

AIGC+低代码:征途漫漫,道阻且长

人们总是高估一项科技所带来的短期效益,却又低估它的长期影响。 一、低代码与 AI 深度融合是未来发展趋势 2023 年上半年,随着 Chat GPT 的爆火,AI 在自然语言对话和代码领域的能力引发全世界的关注,现阶段的 AI 真的能将大家带入…

网络编程——MAC地址、IP地址和子网掩码

MAC地址、IP地址和子网掩码 一、MAC地址:硬件身份证 1、MAC地址的概念 MAC地址,即媒体访问控制地址(Media Access Control Address),是一个用于唯一标识网络设备的物理地址。每个网络接口卡(NIC&#xf…

I帧、P帧、B帧、GOP、IDR 和PTS, DTS之间的关系

一.视频传输原理 视频是利用人眼视觉暂留的原理,通过播放一系列的图片,使人眼产生运动的感觉。单纯传输视频画面,视频量非常大,对现有的网络和存储来说是不可接受的。为了能够使视频便于传输和存储,人们发现视频有大量…

用P2PNet进行大豆计数

文章目录 介绍在大豆数据集上可视化结果环境准备数据集结构数据链接模型训练模型推理代码介绍 这个仓库包含了P2PNet(Rethinking Counting and Localization in Crowds: A Purely Point-Based Framework)在大豆数据集上的pytorch实现。 在大豆数据集上可视化结果 环境准备 …

虚继承中对象占用的内存空间

1、虚继承中对象占用的内存空间1 #include <iostream> using namespace std;class AA {void show() {}int max(int a, int b) { return a > b ? a : b; } }; //函数并不占用内存空间class A {}; //占位符class B {int c; }; //含有一个int型数据成员class C :vi…

如何使用本地mock数据

当后端同事接口数据还未完成&#xff0c;我们前端开发需要使用数据时&#xff0c;怎么办呢&#xff1f;这里可以自己本地mock数据先用着啦&#xff01;仅在开发时使用 1. 创建一个 xxx.js文件&#xff0c;对外暴露一个数组&#xff1b; 对新建js文件编写导出&#xff0c;返回数…

创建线程、线程的挂起与恢复、线程的优先级与终止线程

目录 一、创建线程 CreateThread函数&#xff1a; 下面是示例&#xff1a; ​编辑 ThreadProc函数解释&#xff1a; DWORD的本质是 unsigned long PVOID的本质是 void* 二、线程的终止 1.WaitForSingleObject()函数&#xff1a; 示例如下&#xff1a; 2.ExitThread()函…

ChatGPT 作为 Python 编程助手

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建可编辑的3D应用场景 简单的数据处理脚本 我认为一个好的起点是某种数据处理脚本。由于我打算让 ChatGPT 之后使用各种 Python 库编写一些机器学习脚本&#xff0c;这似乎是一个合理的起点。 目标 首先&#xff0c;我想尝试…

Elasticsearch同时使用should和must

问题及解决方法 must和should组合查询&#xff0c;should失效。使用must嵌套查询&#xff0c;将should组成的bool查询包含在其中一个must查询中。 SearchRequest request new SearchRequest(); request.indices("function_log");SearchSourceBuilder sourceBuilde…

第56步 深度学习图像识别:CNN梯度权重类激活映射(TensorFlow)

基于WIN10的64位系统演示 一、写在前面 类激活映射&#xff08;Class Activation Mapping&#xff0c;CAM&#xff09;和梯度权重类激活映射&#xff08;Gradient-weighted Class Activation Mapping&#xff0c;Grad-CAM&#xff09;是两种可视化深度学习模型决策过程的技术…

一文教你看懂Golang协程调度【GMP设计思想】

一文教你看懂Golang协程调度【GMP设计思想】 1 Golang调度器的由来 1.1 单进程的问题&#xff1a;进程阻塞、CPU浪费时间 单一执行程序、计算机只能一个任务一个任务来进行处理进程阻塞所带来的CPU浪费时间 1.2 多进程、多线程问题&#xff1a;设计复杂、高内存、CPU占用 设计…

面试热题(倒数第k个结点)

输入一个链表&#xff0c;输出该链表中倒数第k个节点。为了符合大多数人的习惯&#xff0c;本题从1开始计数&#xff0c;即链表的尾节点是倒数第1个节点。 例如&#xff0c;一个链表有 6 个节点&#xff0c;从头节点开始&#xff0c;它们的值依次是 1、2、3、4、5、6。这个链表…

通过cpolar内网穿透发布网页测试

通过内网穿透发布网页测试 文章目录 通过内网穿透发布网页测试 对于网站开发者来说&#xff0c;对完成的网页进行测试十分必要&#xff0c;同时还要在测试过程中充分采纳委托制作方的意见&#xff0c;及时根据甲方意见进行修改&#xff0c;但在传统的测试方式中&#xff0c;必须…