您现在的位置是:首页» windows系统» nginx反向代理和负载均衡,nginx反向代理设置详解

nginx反向代理和负载均衡,nginx反向代理设置详解

2024-07-13 15:06:21
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。目录学习背景一、代理服务二、正向代理什么是直接代理人?1.2如何实现nginx直接代理?1.3客户访问(核实直接代理)二、反

本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。

目录

学习背景 一、代理服务 二、正向代理 什么是直接代理人? 1.2如何实现nginx直接代理? 1.3客户访问(核实直接代理) 二、反向代理 反向剂是什么? 2.2 nginx实现反向代理 三、负载均衡 负荷平衡是什么? 3.2什么是负荷平衡算法?

学习背景

什么是nginx?

【百度百科】Nginx(engine x)是一个高性能HTTP和逆代理网络服务器..

除了反向代理,nginx还支持正向代理、负载均衡和基于SSL的安全证书HTTPS访问等功能特性~本文主要是介绍是如何配置 tanginx正因子、逆因子和负荷平衡,进入正文~

一、代理服务

什么是代理人?代理又分为正向代理和反向代理。

二、正向代理

什么是直接代理人?

先来看张图~

【再举个栗子】

某同学喜欢面向搜索引擎编程 ,想通过 百度 搜索引擎查找一些学习资料,但是有些网站直接访问可能不太安全,会暴露自己的IP,同学比较苦恼,想着怎样才能使用 百度 搜索自己想要的学习资料,又 不会暴露自己的IP在网站上呢?然后我告诉同班同学,我刚拿到了一只代理服务器,这台代理服务器通过nginx配置转发代理http和https 请求,你呢,只需要在自己的Windows本地电脑的网关配置一下这台代理服务器的IP和端口号,就能正常通过代理服务器访问到 百度 并搜索相关的学习资料了, 你不会泄露你的真正的IP~

同学们很兴奋地说他们已经知道了Ninx,但是代理人会怎么做呢?

直接代理是指通过代理服务器代理浏览器/客户端去重定向请求访问到目标服务器的一种代理服务。直接代理服务的特点是:代理服务器代理的对象是浏览器/客户端,也就是对于目标服务器来说浏览器/客户端是隐藏的。

同学觉得这有点有趣,于是他们又问了一遍,猪笼草怎么会意识到直接代理?

1.2如何实现nginx直接代理?

(一)直接向代理人转发 https 指令

在实现Xinx代理之前,让我们首先解释一下今天的网站基本上是https因此,为了实现 nginx转发代理请求,您需要配置转发http80端口请求和配置https443端口的请求~正向代理转发http请求很简单,但正在转交给代理人https请求有点问题,大部分在线教程配置如下(我不知道他们是否已经验证了..).):一开始,我也像上面一样配置了,不过http请求是正常发送的,但它被发现https这不是逆转,而是报复HTTP/1.1 400 Bad Request~后来才得知辛克斯的官员不支持直接转移https请求,但阿里的一个大伙子扩大了ngx_http_proxy_connect_module模块,并且在github https://github.com/chobits/ngx_http_proxy_connect_module 不过维护的ngx_http_proxy_connect_module该模块的补丁也仅限于nginx版本(目前正在维护)1.4.x~1.19.x版本),如README.md说明:如果你没有安装的 nginx版本1.4.x~1.19.x在这一范围内,不能支持向正确的代理人转达https请求。

(2)安装nginx如果你已经安装了nginx(可以跳过),这里是1.9.2版本为例,使用root用户进行安装:

在这里安装nginxinstall编译后编译安装的默认安装目录是/usr/local/nginx,后续配置新模块ngx_http_proxy_connect_module还需要重新install编译一次~

(3)下载新模块GitHub上下载ngx_http_proxy_connect_module的zip压缩包源码:https://github.com/chobits/ngx_http_proxy_connect_module

(4)解压缩新的模块源将新模块ngx_http_proxy_connect_module向服务器上传源压缩包/usr/nginx目录,解压缩和重命名

(五)将新模块添加到nginx使用root用户访问了nginx资源目录/usr/nginx/nginx-1.9.2将一个新模块添加到nginxngx_http_proxy_connect_module和并重新编译nginx

–说明:这里nginx-1.9.2版本对应proxy_connect.patch 其他版本的补丁和相关补丁的详细信息请参阅GitHub ~ https://github.com/chobits/ngx_http_proxy_connect_module

使用root用户安装并编译新模块后,如果您不想以后使用它root用户操作,授权安装目录/usr/local/nginx给nginx用户或其他普通用户~

–说明:二进制/usr/local/nginx/sbin/nginx文件需要重新归属为root用户,并添加权限s权限(权限位+s二进制文件属于管道文件,即普通用户也可以执行二进制文件,执行后生成的过程属于该文件的授权拥有者,这里是该文件的拥有者root)

(6)修改nginx的配置Modifynginx配置单独添加http和https的server其他配置仍未更改~

这两个server主要配置是对DNS解析和代理人进行:

– DNS说明:( 国内和国际 ) 目前主导的DNS:(国外)谷歌:8.8.8.8developers.google.com(海外)OpenDNS:208.67.222.222signup.opendns.com(国内)114:114.114.114.114www.114dns.com(国内)腾讯:119.29.29.29www.dnspod.cn(国内)阿里:223.5.5.5alidns.com(国内)百度:180.76.76.76dudns.baidu.com

(7)检查并更新ginx配置

1.3客户访问(核实直接代理)

客户端向代理访问目标站点实例对象: http://www.baidu.com和https://www.baidu.com

(1)客户端-Windows浏览器访问首先,在本地计算机的IE浏览器上设置代理服务器和端口:IE->右上角 ->工具 ->Internet选项->连接->局域网(LAN)设置 ->配置代理IP和端口浏览器访问 http://ww.Baidu.com/和 https://ww.Baidu.com/

实时查看nginx日志

通过 nginx访问日志的实时视图,您可以看到所有由本地计算机访问的网页在您在Windows下设置代理IP和端口后将获得访问代理服务器访问网页,实现转递代理的功能,以及隐藏用户自己的真实IP~

(2)客户端-Linux代理访问它也可以在Linux下验证代理服务器是否能正常代理转发http和https请求~

nginx转运代理https成功:

二、反向代理

反向剂是什么?

先来一张图了解下~与正因子相比,逆因子定义如下:

反向代理,指的是浏览器/客户端不知道你要去哪家目标服务器,只知道去访问代理服务器,代理服务器再通过反向代理 + 负荷平衡实现请求分发到应用服务器的一种代理服务。反向代理服务的特点是:代理服务器代理的对象是应用服务器,也就是对于浏览器/客户端来说应用服务器是隐藏的。

2.2 nginx实现反向代理

(一)修改 thenginx 配置修改nginx配置vi /usr/local/nginx/conf/nginx.conf在http模块中配置如下:通过结合负荷平衡来实现 nginx 逆变剂,直接提供在这里反向代理+负载均衡的配置,负载均衡后一章节介绍~

(二)检查并更新ginx配置

(3)浏览器访问代理服务器部署了Tomcat应用程序,以访问Tomcat静态页面验证波~ http://agentserverIP:8080/appname/ReverseProxy1.html

三、负载均衡

负荷平衡是什么?

让我们看看这张反转剂的照片。可以看到负载均衡(Load Balance)的主要作用是采用了负载均衡算法将请求分发到集群模式中的应用服务器甚至在舞台后面应用服务器挂了,其他应用服务器它也可以正常接收请求并实现高可用在集群模式下支持应用程序服务器纵向扩展能够适应企业快速增长高并发应用场景~

3.2什么是负荷平衡算法?

负载均衡算法常用的有轮询、权重和ip_hash算法,默认是轮询算法~

(1)基于轮询的算法原则是每个请求按时间顺序分配给不同的应用程序服务器,如果接收请求的应用程序服务器被暂停,并且请求超过最大失败数max_fails(1次),然后在届满时fail_timeout在10秒内不会再向节点发送任何请求~

(2)基于权重的算法原则是每个请求按重量分配给不同的应用程序服务器,就像接收请求的应用程序服务器被暂停,请求超过了最大失败数max_fails(默认为1或设置为N次),然后在失败时fail_timeout在10秒内(默认设置为N秒),请求不会被发送到节点~

(3)基于ip_hash的算法该算法的原理是,每个请求按照用户访问IP的 Hash 结果分配,如果请求来自同一用户 IP,则 IP 被固定以访问应用程序服务器,该算法可以有效地解决动态网页的会话共享问题。

一般使用的是基于权重因为现在很多情况下集群部署并且大多数服务器资源在集群下均不均匀。较高的资源具有较高的分配权重,较低的资源具有较低的分配权重。这是基于权重负荷平衡算法能更有效地利用资源,提高并行处理能力~

独创并不容易,但我认为这是好朋友。一键三连(点赞+收藏+评论 )走起~

XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com

标签: nginx