反向代理负载均衡

关于正向代理与反向代理

岁酱吖の 提交于 2019-12-01 17:02:58
今天面试过程中遇到了正向代理与反向代理的问题,回来后整理了这篇文章。 前言 说一下为什么会被问到这个问题吧,我在项目简历中有如下一段描述: 在部署方面,采用了 Nginx+Tomcat 的模式,其中 Nginx 的作用一方面是做反向代理、负载均衡,另一方面是做… 所以就勾起了面试官的… 小王呀,能说一下 Nginx 的负载均衡,以及正向代理跟反向代理有什么区别吗? 相信负载均衡大家应该都有了解,在写正反代理之前再来回顾一下吧。 负载均衡 1、负载均衡使用场景 举一个例子,假如现在有两台服务器 A、B 同时为用户提供服务,如果没有采用负载均衡的话,可能会出现这么个情况,A 占访问的 90%,B 占访问的 10%,或者是 B 占访问的 80%,A 占访问的 20%,总之用户具体访问哪个服务是不确定的,且不可控。所以这种情况的弊端就很明显了,显然我们是希望能够将用户的访问均衡的分配到这两台服务器上的,这才是负载均衡最大的意义。 负载均衡:将客户端的请求按照一定的规则分配到一群服务器上,并将处理结果返回给相应的客户端。 2、负载均衡实现方式 因为是基于 Nginx 的问题,所以就直接来看 Nginx 提供的五种实现负载均衡的方式: 2.1、轮询(默认) 这是 Nginx 默认采用的方式,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器宕掉,能自动剔除;举例:服务器处理请求顺序

nginx反向代理、负载均衡

我是研究僧i 提交于 2019-12-01 16:55:17
什么叫反向代理? A用户--> B(在和C同一个机房,并且有公网)--> C(不带公网的机器) 什么场景下会用到反向代理? 1.访问不带公网的内网机器 2.解决两台之间通信有障碍的问题 编辑虚拟机添加网络适配器,仅主机模式,开机增加网卡 进入网卡配文件 # cd /etc/sysconfig/network-scripts/ # cp ifcfg-ens33 ifcfg-ens37 # vim ifcfg-ens37 重启网络服务 # systemctl restart network Windows可以ping通 场景: 1.A B两台机器,其中A只有内网,B有内网和外网 2.A的内网ip 192.168.109.133 B的内网ip是192.168.109.131 外网ip是192.168.239.128 3.C为客户端,C只能访问B的外网,不能访问A或者B的内网 需求: 1.C要访问到A的内网上的网站 在B机器配置,前提B机器上要有nginx服务: server { listen 80; server_name bbs.centos.com; location / { proxy_pass http://192.168.109.133; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;

(转)装逼必备:大型分布式网站术语分析

♀尐吖头ヾ 提交于 2019-12-01 12:55:51
1、I/O优化 1、增加缓存,减少磁盘的访问次数。 2、优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。 3、设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。例如,我们可以给存放的数据设计索引,通过寻址索引来加快和减少磁盘的访问量,还可以采用异步和非阻塞的方式加快磁盘的访问速度。 4、应用合理的RAID策略提升磁盘I/O。 2、Web前端调优 1、减少网络交互的次数(多次请求合并) 2、减少网络传输数据量的大小(压缩) 3、尽量减少编码(尽量提前将字符转化为字节,或者减少从字符到字节的转化过程。) 4、使用浏览器缓存 5、减少Cookie传输 6、合理布局页面 7、使用页面压缩 8、延迟加载页面 9、CSS在最上面,JS在最下面 10、CDN 11、反向代理 12、页面静态化 13、异地部署 3、服务降级(自动优雅降级) 拒绝服务和关闭服务 4、幂等性设计 有些服务天然具有幂等性,比如讲用户性别设置为男性,不管设置多少次,结果都一样。但是对转账交易等操作,问题就会比较复杂,需要通过交易编号等信息进行服务调用有效性校验,只有有效的操作才能继续执行。 (注:幂等性是系统的接口对外一种承诺(而不是实现), 承诺只要调用接口成功, 外部多次调用对系统的影响是一致的. 声明为幂等的接口会认为外部调用失败是常态,

Nginx 反向代理与负载均衡

匆匆过客 提交于 2019-12-01 09:38:02
转载来自于 https://mp.weixin.qq.com/s/xLOS-XNOinkptKRBJN8gXg 什么是反向代理与负载均衡 什么是反向代理 当我们有一个服务器集群,并且服务器集群中的每台服务器的内容一样的时候,同样我们要直接从个人电脑访问到服务器集群服务器的时候无法访问,必须通过第三方服务器才能访问集群 这个时候,我们通过第三方服务器访问服务器集群的内容,但是我们并不知道是哪一台服务器提供的内容,此种代理方式称为 反向代理 什么是负载均衡 公司会建立很多的服务器,这些服务器组成了服务器集群,然后,当用户访问网站的时候,先访问一个中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入选择的服务器 所以,用户每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况 一句话: nginx会给你分配服务器压力小的去访问 Nginx反向代理与负载均衡的实现 用户访问网站的时候首先会访问nginx服务器,然后nginx服务器再从服务器集群中选择压力较小的服务器,将该访问请求引向该服务器 nginx配置 下面修改配置方面我就从mac系统下来进行简单的演示,如何安装的话也暂以mac为主了,windows系统直接去Nginx官网下载安装即可 安装nginx 1-进到homebrew官网,然后复制命令

nginx实现反向代理

浪子不回头ぞ 提交于 2019-12-01 07:53:25
nginx 实现方向代理 1.什么是nginx Nginx是由俄国人编写的十分轻量级的HTTP服务器,是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等 2.什么是代理 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。 例如:我们身边的要租房子的人 3.没有代理的情景 在没有代理的情况下,客户端和nginx服务端,都是客户端,都是客户端之间请求服务端,服务端则直接响应客户端 4.企业场景 在互联网请求里面,客户端往往无法直接向服务端发起请求,那么就需要实现客户端和服务通信。 5.nginx代理服务常见模式 nginx 作为代理服务,按照应用场景进行总结,代理分为正向代理,反向代理 6.正向代理 正向代理:客户端 <一> 代理 一>服务端: 正向代理简单地打个租房的比方: A(租客)B(中介)C(房东)A(客户端)想租C(服务端)的房子,但是A(客户端)并不认识C(服务端)租不到。 B(代理)认识C(服务端)能租这个房子所以你找了B(代理

Nginx反向代理与负载均衡

倾然丶 夕夏残阳落幕 提交于 2019-12-01 05:36:28
最近在做需求的时候,有时候会和别的三方系统交互,如调用一个第三方系统的http接口查询商品物流信息,获得响应数据返回给我们自己系统的前端页面进行展示,整个流程会遇到什么样的问题呢,现在整理一下。 代理 大家都知道,我们平时开发,都是在公司的内网(局域网)中,即不能与外网(互联网)交互,也就是不能上网,所以要想使开发机或服务器能够访问外网,就不得不通过代理服务器转发请求了。这里自然而然的就想到了使用Nginx做代理了,那什么是代理呢?我们就先了解一下代理的基本概念吧。 代理一词被我们在生活中所熟知,印象中的“代理”指的是以他人的名义,在授权范围内进行对被代理人直接发生法律效力的法律行为。这是百度百科解释的代理一词的意思。通俗点说就是“代别人处理”,举个生活中常见的例子,你去办车检,需要排队办理,也有很多表格要填,还要等待很久,办下来差不多要一天。有些人嫌麻烦,浪费时间,不愿意干,这个时候“代理车检”这一职业就诞生了。你授权代理人帮你处理一些列繁琐的事情,并支付一定的费用,你只需要关心结果,有没有办成功,其他的你不需要关心。这样,你就从这一事务中脱离出来,交给专业的人去做。代理人执行的这一动作就叫做代理。 同样,回到互联网行业,代理一词同样适用。只不过这里的代理人和被代理人都是计算机,即计算机1要访问A站点,但是计算机1到A站点的网络不通,而计算机2到站点A的网络畅通

Nginx笔记

≯℡__Kan透↙ 提交于 2019-11-30 22:58:18
Nginx基本概念 反向代理 正向代理 在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问 反向代理 将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址 负载均衡 单个服务器解决不了,增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器上 动静分离 为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力 安装 下载 本地下载,下载地址 https://nginx.org/en/download.html 下载后上传至CentOS下的 /usr/local/ 目录下 wget直接下载 cd /usr/local wget http://nginx.org/download/nginx-1.17.1.tar.gz 安装 解压安装包 tar -zxvf nginx-1.17.1.tar.gz 注意:nginx被解压到了 /usr/local/nginx-1.17.1 目录下(不要把压缩包解压到 /usr/local/nginx 目录下,或者将解压后的目录重命名为nginx,因为nginx会默认安装到

nginx服务器

元气小坏坏 提交于 2019-11-30 18:31:03
1什么是Nginx   Nginx 是一款高性能的 http 服务器(静态页面,jsp。htm) / 反向 代理服务器 及电子邮件( IMAP/POP3 )代理服务器 ,并且 cpu 、内存等资源消耗却非常低,运行非常稳定。   官方网站下载 nginx : http://nginx.org/ 部署静态页面 server { listen 87; server_name 127.0.0.1; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } } server { listen 88; server_name 127.0.0.1; location / { root hrm-home; index index.html index.htm; } } server { listen 99; server_name 127.0.0.1; #charset koi8-r; #access_log logs/host.access.log main; location / { root hrm-user; index index.html index.htm; } } 2作用,用处   前端页面的部署   解决端口访问问题

Nginx教程(一)

情到浓时终转凉″ 提交于 2019-11-30 12:28:22
什么是 nginx nginx 是一款高性能的 http 服务器,反向代理服务器,电子邮件(IMAP/POP3)代理服务器; 它的特点就是高性能,占用内存少,支持高并发,运行稳定; 官方测试 可支持 5万 的并发量; nginx 的用途 nginx 可以用于多种场景,最常用的是反向代理,其他场景也需要反向代理实现 http 服务器 :nginx 是一个 http 服务器,可以独立提供 http 服务,可以做 web 静态资源 服务器 正向代理 : 反向代理 :反向代理是它最重要,也是最常用的一个场景 负载均衡 :把多个请求近似平均的分配到多个服务器上   // 也就是说负载均衡需要多个服务器       【一个服务器多个端口应该也行,我没试过,使用时请自行测试】   // 负载均衡的本质其实也是反向代理 动静分离 :把 web 静态资源和动态资源放在不同的服务器上,然后加上反向代理 配置高可用集群 : 功能框架 常规 web 框架 我们先看下常规 web 服务的 请求响应 过程,加入后台需要操作数据库,如下图 开发环境的 web 服务器是单线程的,多个请求必须排队 反向代理 nginx 作为反向代理,隐藏真实 IP,在 windows 上配置 域名-ip 解析器,使用域名通过 代理(nginx) 访问 真实服务(tomcat) 负载均衡 把 多个 request 平均分配到 多个

Nginx--面试基础必会

爱⌒轻易说出口 提交于 2019-11-30 07:47:59
文章原创于公众号:程序猿周先森。本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号。 最近一直在更新关于Nginx的系列文章,终于将Nginx的几个关键知识点讲的差不多了。本篇作为Nginx系列的结尾篇幅,主要是列举一些面试时经常问到的Nginx知识点。其实Nginx适合提问的面试点并不多,问来问去基本都是类似的问题。接下来我们一起来看看Nginx基本的面试题。 Nginx的作用 这个问题是入门级知识点,讨论Nginx的用处。我觉得只要几个重要的点都回答到位就可以了,可以考虑这样的一个回答:Nginx是一个高性能web服务器和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。不仅可以实现负载均衡,还可以做接口限流,缓存等功能。 使用Nginx的优势点 Nginx由于使用了epoll和kqueue网路I/O模型,在实际生产环境能够支撑3万左右并发连接。 Nginx内存消耗低。 Nginx跨平台,而且配置相对来说难度较低。 Nginx内置健康检查功能,如果负载均衡其中一个服务器宕机了,则接受到的请求会发送给其他服务器去处理。 支持Gzip压缩,可以添加浏览器本地缓存的Header头。 Nginx支持热部署,可以在不间断服务的情况下平滑进行配置的更改。 Nginx异步接收用户请求,减轻了Web服务器的压力。 Nginx如何实现高并发