1、反向代理的概念:

对一个大型网站来说,随着网站的访问量的快速增长,单台服务器已经无法承担大量用户的并发访问,必须采用多态服务器协同工作,以提高计算机系统的处理能力。通过Nginx提供的反向代理和负载均衡功能,可以合理地完成业务的分配,提高网站的处理能力。

1)概念

正向代理:局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

反向代理:我们将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP地址。

反向代理的客户端用户只能通过外网来访问代理服务器,并且用户并不知道自己访问的是一个代理服务器,好处就是反向代理将真正处理放在内存中,有效地提高了网络安全性。

反向代理的用途就是将防火墙后面的服务器提供给Internet用户访问,还可以为多个后端服务器提供负载均衡功能,缓存功能等。

firewall docker nginx 反向代理提示502 反向代理服务器nginx_反向代理

反向代理服务器怎么选择后面的服务器呢?就是负载均衡。

代理服务技术在Nginx服务器中占据着举足轻重的地位。Nginx中很多应用功能都是从代理服务中衍生出来的,如负载均衡。

2、反向代理服务器的配置:

反向代理的配置非常简单,最主要的指令就是proxy_pass,用于设置后端服务器的地址。该地址中包括传输数据使用的协议,服务器主机名以及可选的URI资源等。

1)准备服务器

服务器名称

IP地址

备注信息

反向代理服务器

192.168.17.3

reproxy

后端服务器1

192.168.17.128

web1

后端服务器2

192.168.17.120

web2

2)然后给三台服务器安装nginx,并启动nginx。

3)配置反向代理:

firewall docker nginx 反向代理提示502 反向代理服务器nginx_代理服务器_02

 

firewall docker nginx 反向代理提示502 反向代理服务器nginx_代理服务器_03

说明:配置域名为test.ng.test和test.web.com的域名的虚拟机。

然后下面是配置proxy_pass指令后的http://表示传输数据所使用的协议,在服务器支持https服务的情况下,还可以将其指定为https://安全网络传输协议。

1)两个端口都是80;

2)proxy_pass的填写方式等。

注意:更改了配置文件,需要对nginx进行重启。

4)然后在web1和web2服务器上分别修改html目录下的index.html文件:

<h1>Welcome to web server1: 192.168.17.128!</h1>

<h1>Welcome to web server2: 192.168.17.200!</h2>

5)在宿主机上修改下hosts文件:

firewall docker nginx 反向代理提示502 反向代理服务器nginx_nginx_04

 6)然后在浏览器中进行测试:

firewall docker nginx 反向代理提示502 反向代理服务器nginx_代理服务器_05

 

firewall docker nginx 反向代理提示502 反向代理服务器nginx_反向代理_06