Linux Apache 配置反向代理

最近遇到一个项目,需要访问某单位的内网服务器,对方要求必须要配置一个前置机,来转发所有的web请求,然后就学了一下反向代理,查了一些资料,也完成了HelloWorld的例子。

关于反向代理的介绍,可以参考 介绍1介绍2 相互补充吧,关于概念的介绍挺不错的。

我现在仅仅是完成了第一步,就是配置转发请求。
操作系统是centos,关于linux安装apache就不多说了

apache安装完成后,进入 /etc/httpd/conf目录,打开 httpd.conf文件
然后

  • 1.先检查代理模块是否开启
  • 2.配置最基本的反向代理
  • 3.重启apache

第一步
看一下

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

是否打开,如果没有打开,去掉上面代码前面的#

第二步

打开/etc/httpd/conf目录下的httpd.conf,在末尾添加如下代码

<VirtualHost 123.123.123.123:8800>
ServerName example
ServerAlias example
ProxyRequests off
<Proxy *>
    Order allow,deny
    Allow from all
</Proxy>
ProxyPass / http://www.baidu.com/
ProxyPassReverse / http://www.baidu.com/
</VirtualHost>

简单说一下这几个参数

  • 123.123.123.123 是服务器使用的IP地址
  • 8800 是apache所监听的端口
  • ProxyPass 与 ProxyPassReverse 后面的『http://www.baidu.com/』是需要我们的请求的真正的目的服务器,其前边的 空格+/+空格 也是属于我们配置的一部分

第三步
重启apache, 进入 /etc/init.d/ 目录,执行 ./httpd restart

这样,当我们在客户端浏览器中输入 http://123.123.123.123:8800/ 时,页面将返回百度首页,当我们访问访问http://123.123.123.123:8800/admin/index.html 时,应该返回 http://www.baidu.com/search/error.html 因为我们访问的路径不存在嘛

以上就是最基本的使用apache配置代理转发请求
更详细的配置可以再看更详细的博客
如:
apache配置正向代理与反向代理
Ubuntu配置反向代理

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。