day17(nginx反向代理)

news2024/11/28 19:48:04

反向代理 安装nginx 1.26.1 平滑升级 负载均衡

1.nginx 反向代理配置

反向代理:⽤户直接访问反向代理服务器就可以获得⽬标服务器 (后端服务器)的资源。

反向代理效果:当访问200主机(web1),(nginx反向代理201主机(web2)的服务器)返回201 (web2)主机的页面。

nginx代理其他服务器的时候,不需要对方同意,更加方便了模块化操作。

2、代理优化(1)简单轮询

[root@web1 ~]# vim /usr/local/nginx/conf/nginx.conf

http {  

        include       mime.types;  

        default_type application/octet-stream;

        upstream backend_servers {    

          server 10.0.0.201:80;      

         server 10.0.0.202:80;

  }  

location / {        

        #   root   html;        

        #   index index.html index.htm;  

          proxy_pass   http://backend_servers;  

    }

[root@web1 ~]# /usr/local/nginx/sbin/nginx -s reload

3、代理优化(1)nginx 访客 IP ⿊名单

作为运维⼈员,我们可以选择允许哪些⽤户 IP 来访问我们的服务器,也可以选择允许哪个⽹段的⽤ 户。

allow:允许 deny:拒绝

在 nginx 配置⽂件的 server 模块内可以添加下⾯的内容。 当访问被拒绝时,会显示 403 错误⻚ ⾯。

4、nginx日志查看与分析

访问来源: 10.0.0.201、10.0.0.200

访问时间:

        2024 年 7 月 30 日 11 时 27 分 42 秒

        2024 年 7 月 30 日 11 时 27 分 46 秒

        2024 年 7 月 30 日 11 时 37 分 18 秒

访问方式和协议:

         GET 方法

        HTTP/1.1 协议和 HTTP/1.0 协议

访问结果:

         200 状态码,表示请求成功,返回了 26 字节的数据。

         403 状态码,表示禁止访问,分别返回了 153 字节和 555 字节的数据。

用户代理:

        curl/7.29.0

        Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0

这段错误日志表明了以下情况:

在 2024 年 7 月 30 日 11 时 27 分 46 秒和 11 时 37 分 23 秒分别发生了两次访问被禁止的错误。

对于这两次错误,原因都是“access forbidden by rule”(被规则禁止访问)。

客户端的 IP 均为 10.0.0.200 ,服务器名称为“localhost”。

请求方式分别为“GET / HTTP/1.1”和“GET / HTTP/1.0”。

请求的主机分别为“10.0.0.202”和“backend_servers”。

---------------------------------------------------------------------------------------------------------------

nginx默认情况下同一个文件只允许1024人访问

5、代理优化(2)负载均衡

四层负载均衡使用 stream 模块,与七层的 http 模块同级。编译安装时需要加--with-http_stub_ status_module模块。

早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求, 但是随着互联网的发 展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来 了,因此需要多台服务器进行性能的水平扩展及避免单点故障出现。

负载均衡是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好 的体验,快速增长的访问量和数据流量催生了各式各样的负载均衡的产品,很多专业的的负载均衡硬件 提供了很好的功能,但价格不菲,这使得负载均衡软件大受欢迎,nginx就是其中一个,在linux下有 nginx、Ivs、haproxy等服务,可以提供复杂均衡服务。

(1)作用

        解决服务器的高并发压力,提高应用程序的处理性能;

        提供故障转移,实现高可用;        

        通过添加或减少服务器数量,增强网站的可扩展性;

        在负载均衡器上进行过滤,可以提高系统的安全性;

1、提高系统性能

        负载均衡可以扩展网络设备和服务器的带宽,优化访问请求在服务器组之间的分配,提高系统的反 应速度和总体性能。

2、监控服务器的运行状态

        负载均衡能够监控服务器的运行状态,提高整个服务器组的可靠性。

3、提供服务一致性

        负载均衡器具有提供服务一致性的功能,负载均衡器通过读取客户端所发出 请求内的信息,进行重 写报头程序然后将请求发送至合适的服务器上,该服务器会维护着该客户端信息。在http通信当中,负 载均衡器提供服务一致性的功能就得到了很好的发挥,但提供该服务的途径并不是非常安全。但若将消 息加密后,负载均衡器就无法读取隐藏其中的信息了。

4、摆脱停机时间

        服务器托管公司可能会在维护期间将服务器关闭一段时间,这可能发生在业 务的高峰期。在基于云 服务器中,可以在将流量引导到另一台服务器的资源之后进行维护,前提是它们不在维护中,从而可以 消除网站的停机时间。

5、管理服务器故障

        由于它具有根据需要添加或删除实例的功能,因此可以跨云平台拥有多个数据中心。如果其中一台 服务器发生故障,则可以快速移动流量,将故障服务 器的流量流入到另一台服务器中。

6、转发功能

        按照一定的算法,将客户端请求转发到不同应用服务器上,减轻单个服务器 压力,提高系统并发 量。

7、恢复添加

        如检测到发生故障的应用服务器恢复工作,自动将其添加到处理用户请求队 伍中。

8、分发流量

        分发流量、请求到不同的服务器。使流量平均分配,提高整个集群的响应速 度、服务的高可用性。

(2)策略

(3)配置

(4)状态

在服务器组的组内服务器后填写该服务器的状态

6、nginx版本平滑升级

(1)原理

1、启动后完成配置加载和端⼝绑定等动作, 分离出指定数量的⼯作⼦进程 ,这些⼦进程会持有监 听端⼝的⽂件描述符 (fd),并通过在该描述符上添加监听事件来接受连接。

2、Nginx 主进程在启动完成后会进⼊等待状态,负责响应各类系 统消息,如 SIGCHLD、 SIGHUPSIGUSR2 等。

3、主进程⽀持的信号

TERM、INT:⽴刻退出

QUIT:等待⼯作进程结束后再退出

KILL:强制终⽌进程

HUP:重新加载配置⽂件,使⽤新的配置启动⼯作进程,并逐步关闭旧进程

USR1:重新⽣成⽇志⽂件

USR2:启动新的主进程,实现热升级

WINCH:逐步关闭⼯作进程及⼯作进程⽀持的信号

(2)过程

1、查看旧版nginx的编译参数;

2、编译新版本 Nginx 源码包,安装路径需与旧版⼀致,注意: 不要执⾏ make install;

3、备份⼆进制可执⾏⽂件,⽤新版本的替换;

4、确保配置⽂件⽆报错;

5、发送USR2信号:向主进程(master) 发送USR2信号,Nginx 会启动⼀个新版本的 master 进程和 对应⼯作进程,和旧版⼀起处理请求;

6、发送WINCH信号:向旧的 Nginx主进程(master) 发送 WINCH 信号,它会逐步关闭⾃⼰的⼯作进 程(主进程不退出),这时所有请求都会由新版Nginx处理

7、发送QUIT 信号: 升级完毕,可向旧的 Nginx 主进程(master) 发送 (QUIT、TERM、或者KILL)信 号,使旧的主进程退出;

8、验证nginx 版本号,并访问测试.

(3)配置

7、配置tomcat 10 运行环境

(tomcat9 可以在jdk8环境运行 ,tomcat10必须在jdk17以上的版本运行)

下载tomcat 10软件包

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

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

相关文章

vite instanceof 失效

背景:给一个巨石单体项目进行标准化模块拆分,封装出来的模块代码用 vite 进行构建,但模块启动后页面上的表现一直和 webpack 那版不一致 一步步 debug 后,发现问题出在下面这个判断条件 const GeneratorFunction function* () …

解决jenkins配置extendreport不展示样式

下载插件:Groovy 、 HTML Publisher plugin 配置: 1)Post Steps : 增加 Execute system Groovy script , 内容: System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "&qu…

【React】详解 React Router

文章目录 一、React Router 的基本概念1. 什么是 React Router?2. React Router 的主要特性 二、React Router 的核心组件1. BrowserRouter2. Route3. Link4. Switch 三、React Router 的使用方法1. 安装 React Router2. 定义路由组件3. 配置路由4. 启动应用 四、Re…

再谈istio

微服务之间调用观测, istio的版本是对k8s 版本有要求的,案例中 istioshi 1.15.2 版本的 一、下载 Istio 二、部署 egressgateway 和 ingressgateway 分别控制进出 istio 通过 Envoy proxy,也就是pod加边车的方式来控制用户对svc的访问 这样…

Spring验证码

前言:使用Hutool 1.什么是Hutool? 2.代码复制到test类中 3.代码爆红,说明需要引入依赖 4.根据名取Maven仓库相关依赖 5.在pom.xml文件中进行配置 6.引入成功 7. 运行程序 打开d盘,发现已经生成了验证码的图片,路径在…

Python推荐书单:三本不可错过的经典书籍

强烈推荐这三本书!! 一、《Python编程从入门到实践》 这本书适合零基础的Python读者,旨在帮助他们快速入门Python编程,并达到初级开发者的水平。书中深入浅出地介绍了Python的基础概念,如变量、循环、函数等&#xff…

智能优化算法(三):遗传算法

文章目录 1.问题描述2.遗传算法2.1.算法概述2.2.编码操作2.3.选择操作2.4.交叉操作2.5.变异操作2.6.算法流程 3.算法实现3.1.MATLAB代码实现3.2.Python代码实现 4.参考文献 1.问题描述 \quad 在利用启发式算法求解问题时,我们常常需要应用遗传算法解决函数最值问题&…

【Golang 面试 - 进阶题】每日 3 题(八)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

重塑七人拼团模式:社交电商的裂变新策略

在当今的电商领域,七人拼团模式作为一种创新的商业模式,正以其独特的魅力引领着中小型企业迈向新的增长阶段。这一模式巧妙融合了社交电商的互动性与拼购的趣味性,旨在通过用户间的自然传播,实现市场的快速渗透与品牌影响力的显著…

【赛事推荐】2024中国高校计算机大赛人工智能创意赛

“中国高校计算机大赛”(China Collegiate Computing Contest,简称C4)是面向全国高校各专业在校学生的科技类竞赛活动,于2016年由教育部高等学校计算机类专业教学指导委员会、教育部高等学校大学软件工程专业教学指导委员会、教育…

NSS [SWPUCTF 2022 新生赛]funny_php

NSS [SWPUCTF 2022 新生赛]funny_php 开题&#xff0c;直接给了源码 <?phpsession_start();highlight_file(__FILE__);if(isset($_GET[num])){if(strlen($_GET[num])<3&&$_GET[num]>999999999){echo ":D";$_SESSION[L1] 1;}else{echo ":C&…

Express基于Node.js基础知识【1】全面总结 推荐收藏

最近在用基于node.js平台的web应用开发做项目&#xff0c;梳理了下关于Express框架的相关知识&#xff0c;方便自己以后查看&#xff0c;希望也能帮助证字啊学习express相关知识的同学&#xff0c;欢迎大家参考&#xff0c;有问题评论区留言&#xff0c;谢谢。 目录 1.安装 …

【人工智能】基础三:深度学习概述、人工神经网络基础

文章目录 一. 深度学习1. 深度学习概念2. 深度学习原理3. 深度学习学习方式4. 深度学习训练方法 二. 人工神经网络基础1. 神经元感知器模型2. 神经网络模型2. 学习方式3. 学习规则3.1. 正向传播求误差3.2. 反向传播求偏导&#xff08;ing&#xff09; 4. 激活函数 一. 深度学习…

【环境搭建问题】linux服务器安装conda并创建虚拟环境

1.检查有没有conda 首先看root文件夹下有没有anaconda或者conda 没有的话就要先下载安装conda&#xff1a; https://repo.anaconda.com/archive/index.html 在这个链接下找自己需要的。服务器一般为linux&#xff0c;所以我这里选择的是&#xff1a; 2.安装conda 下载安装…

阳光混合试验的三个指标

户外干燥气候循环系统&#xff08;仿真模拟空气干燥气侯&#xff09;户外湿冷气侯循环系统&#xff08;仿真模拟寒湿和冰冷晚间气侯&#xff09;室内干燥气候耐久度 阳光模拟温湿度试验箱 主要用于汽车及零部件的曝晒试验、如塑料样板、仪表盘、中控屏、方向盘、保险杠等&…

基于 GADF+Swin-CNN-GAM 的高创新电能扰动信号识别模型!

往期精彩内容&#xff1a; 电能质量扰动信号数据介绍与分类-Python实现-CSDN博客 Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(三)基于Transformer…

【计算机毕设论文】基于SpringBoot的诗词管理系统

&#x1f497;博主介绍&#xff1a;✌全平台粉丝5W,高级大厂开发程序员&#x1f603;&#xff0c;博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】小伙伴可以关注我 感兴趣的可以先收藏起来&#xff0c;同学门有不懂的毕设选题&#xff0c;项目以及论文编写等…

轻松入门Linux—CentOS,直接拿捏 —/— <1>

一、什么是Linux Linux是一个开源的操作系统&#xff0c;目前是市面上占有率极高的服务器操作系统&#xff0c;目前其分支有很多。是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统 Linux能运行主要的UNIX工具软件、应用程序和网络协议 Linux支持 32…

小程序开发_05协同工作和发布

一、开发流程 二、权限管理 三、不同成员的权限 四、小程序发布上线的步骤 上传代码--->提交审核-->发布1. 上传代码 提交审核 三、发布上线

文件IO相关作业

1> 使用文件IO完成&#xff0c;将源文件中的所有内容进行加密&#xff08;大写转小写、小写转大写&#xff09;后写入目标文件中 源文件内容不变 #include<myhead.h>int main(int argc, const char *argv[]) {//判断传入的是否是两个文件if(argc!3){write(2,"inp…