梁伟博客

写点什么好呢?
还是不写了吧

apache做代理服务器

apache做代理服务器

很多人想用apche实现代理功能,这个是完全可以的。详细教程如下:

apache代理分为正向代理和反向代理:
1 正向代理: 客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web(需要在客户端的浏览器中设置代理服务器)
适用于:
①局域网的代理服务器(一般是网关,相当于squid的一般用法)
②访问某个受限网络的代理服务器,如教育网访问某些国外网站需要找代理
2 反向代理: 客户端能访问外部的web,但是不能访问目标web,目标web所在的网络内一台机器充当目标web的代理,客户端直接访问代理就像访问目标web一样(此代理对客户端透明,即客户端不用做如何设置,并不知道实际访问的只是代理而已,以为就是访问的目标)
适用于:
①idc的某台目标机器只对内开放web,外部的客户端要访问,就让另一台机器做proxy,外部直接访问proxy即相当于访问目标
②idc的目标机器的某个特殊的web服务跑在非正常端口如9000,而防火墙上只对外开放了80,此时可在80上做proxy映射到9000,外部访问80即相当于9000
本例中机器192.168.1.100是我们的reverse proxy serverapache/2.0.63运行在其80端口上面有两个域名的虚拟主机
www.a.com
www.b.com
要实现的效果是:
访问 www.a.com 即相当于访问另一台机器192.168.0.101
访问 www.b.com 即相当于访问本机的9000端口
apache的proxy功能由其proxy模块实现.这里采用动态加载.
动态加载:编译进一个已经装好了的apache中(编译为dso模块)
编辑配置文件
ee /usr/local/etc/apache22/httpd.conf
加载如下模块:
LoadModule proxy_module modules/mod_proxy.so (这句是编译激活时产生的)
LoadModule proxy_http_module modules/mod_proxy_http.so (这句是要手动添加的)
虚拟主机的部分加上:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName www.a.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://192.168.1.101/
ProxyPassReverse / http://192.168.1.101/
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName www.b.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>
重启apache生效

简单操作一下,就可以实现apache来做代理服务器了。

如本站对您有帮助请扫码打赏支持一下本站运营,扫码领红包(支付宝扫码)也是一种支持

打赏
本文作者:梁伟
本文链接:https://www.liangwei.cc/server_tech/apache_zuo_daili_fu_wu_qi.html
版权声明:本文为原创文章未经允许不得转载
当前页面:梁伟博客 » 服务器技术 » apache做代理服务器

评论 抢沙发

  • 您的昵称:无法获取您的昵称,请先登录或者在评论框下方填写昵称和邮箱