手机版

PHP使用Nginx实现反向代理

时间:2021-09-03 来源:互联网 编辑:宝哥软件园 浏览:

I .代理服务器

1.什么是代理服务器

代理服务器,当客户端发送请求时,不会直接发送到目的主机,而是先发送到代理服务器。代理服务接受客户端的请求后,会发送给主机,接收目的主机返回的数据,存储在代理服务器的硬盘中,然后发送给客户端。

2.为什么要使用代理服务器

1)提高访问速度

由于目标主机返回的数据会存储在代理服务器的硬盘中,客户下次访问同一站点数据时,会直接从代理服务器的硬盘中读取,起到缓存的作用,尤其是对于热门站点,可以明显提高请求速度。

2)防火墙功能

由于所有客户端请求都必须通过代理服务器访问远程站点,因此可以在代理服务器上设置限制来过滤一些不安全的信息。

3)通过代理服务器访问不可访问的目标站点

互联网上有很多发达的代理服务器。当客户端的访问权限有限时,它们可以通过无限制的代理服务器访问目标站点。一般来说,我们使用的墙外浏览器使用代理服务器。虽然不能出国,但也可以直接接入外网。

二、反向代理VS正向代理

1.什么是远期代理?什么是反向代理?

在客户端和目标主机之间设置的转发代理仅用于代理内部网络到互联网的连接请求。客户端必须指定一个代理服务器,并将最初直接发送到网络服务器的http请求发送到代理服务器。

在服务器端设置反向代理服务器,通过缓冲频繁请求的页面,将客户端请求转发到内网的目标服务器,减轻服务器的工作量;并将结果从服务器返回给请求互联网连接的客户端。此时,代理服务器和目标主机显示为服务器。

2.反向代理的主要应用有哪些?

如今,许多大型网站使用反向代理。除了防止外部网络对内网服务器的恶意攻击、缓存减轻服务器压力和访问安全控制外,还可以进行负载均衡,将用户请求分发到多台服务器。

三、方向代理服务器Nginx

作为近年来流行的反向代理服务器,Nginx安装在目的主机上,主要用于转发客户端请求。后台有几个http服务器提供服务。nginx的功能是将请求转发到以下服务器,并决定处理当前请求的目标主机。下面演示如何配置Nginx工作。

1.模拟n个http服务器作为目标主机

作为测试,只需使用两个tomcat实例来模拟两个http服务器,并将tomcat的端口分别更改为8081和8082

2.配置IP域名

192 . 168 . 72 . 49 8081.max.com

192 . 168 . 72 . 49 8082.max.com

3.配置nginx.conf

上游tomcatserver1 {服务器192.168.72.49:8081}上游tomcatserver2 {服务器192.168.72.49:8082}服务器{ listen 80服务器名8081.max.com;# charset koi 8-r;# access _ log logs/host . access . log main;location/{ proxy _ pass http://tomcatserver 1;index.htmlindex.htm指数;} }服务器{ listen 80服务器名8082.max.com;# charset koi 8-r;# access _ log logs/host . access . log main;location/{ proxy _ pass http://tomcatserver 2;index.htmlindex.htm指数;}}流程:

1)浏览器访问8081.max.com,并通过本地主机文件的域名解析找到192.168.72.49服务器(已安装nginx)

2)nginx反向代理接受客户端请求,找到server_name为8081.max.com的服务器节点,根据proxy_pass对应的http路径,将请求转发到上游tomcatserver1,即端口号为8081的tomcat服务器。

4.效果显示

请求8081.max.com,tomcat1接收并返回主页

请求8082.max.com,tomcat2接收并返回主页

四.摘要

通过分析不难得出结论,如果客户端的IP和百度服务器(目标主机)的IP在同一个网段,类似于在局域网内部发送请求,速度极快。

但如果不能满足这种需求,想要实现更好的请求响应,百度服务器可以提供一个与目标服务器同网段的公网IP,即反向代理服务的IP,通过代理服务器转发客户端请求,并决定幕后的哪N台服务器会处理这个请求。因为反向代理服务器与目标主机位于同一网段,所以访问速度会非常快。

当Nginx用作反向代理服务器时,它是许多反向代理服务器之一。通过简单的配置,可以将客户端请求转发到指定的服务器,通过将其分配给服务器IP或域名地址来处理该请求。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:PHP使用Nginx实现反向代理是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。