Apache代理

Posted by 少年不年少 on September 7, 2020

Apache常见配置

代理

所谓代理,其实可以理解为url转发,主要由mod_proxy模块处理。例如:

使用apache作为域名www.test.com代理服务器,让其暴露在公网上,即DNS解析到本机器上,真正提供web服务器的是另一台位于同一内网的机器上,假设起IP是127.0.0.1,那么只需要如下配置就可以了。 ProxyPass / http://127.0.0.1/ ProxyPassReverse / http://127.0.0.1/

正向代理

客户端到服务器称之为正向代理,主要有两种配置方式:

  1. ProxyPass——前缀匹配
  2. ProxyPassMatch——正则匹配

反向代理

服务器到客户端就叫反向代理。

它一般和ProxyPass指令配合使用,此指令使Apache调整HTTP重定向应答中Location, Content-Location, URI头里的URL,这样可以避免在Apache作为反向代理使用时。后端服务器的HTTP重定向造成的绕过反向代理的问题。参看下面的示例: ProxyPass /example http://www.example.com/ ProxyPassReverse /example http://www.example.com/ ProxyPassReverse的作用就是反向代理,如果没有加这样的反向代理设置的情况下,访问http://www.test.com /example/a,如果www.example.com对请求进行了redirect至http://www.example.com/b,那么,客户端就会绕过反向代理,进而直接访问http://www.example.com/example/b。如果设置了反向代理,则会在转交HTTP重定向应答到客户 端之前调整它为http://www.test.com/example/b,通过www.test.com主机转发到www.example.com主机,即客户端完全看不到www.example.com的身影,仿佛一直和www.test.com在通信。