当前位置:首页 > Web开发 > 正文

Apache 正向代理与反向代理配置

2024-03-31 Web开发

Apache提供了 mod_proxy 模块用于提供代理服务,能够支持的包括正向代理、反向代理、透明代理、缓存、负载均衡,HTTP代理、FTP代理、SSL代理等若干强大的功能。

配置代理方法很简单那,首先在 Apache 上启用 mod_proxy 模块,需要注意的是,如果在 Apache-2.2 上,则还需要加载名为 mod_proxy_http 的模块。因为 2.2 系列把代理功能都拆分成N个小模块了。

一般 Apache 的这些功能我们在编译的时候都是以模块的形式加入的,编译时加上相关参数,然后编译安装就可以了。

./configure --prefix=http://www.mamicode.com/usr/local/apache2 --enable-so --enable-rewrite=shared --enable-proxy=shared make && make install

我这里先是看了我的 Apache 中 有没有这个模块,如果没有 Apache 没有安装 proxy 模块,可以不用重新编译添加模块。

/usr/local/apache2/bin/apxs -c -i mod_proxy.c proxy_util.c (ps 必须2个c一起编译,不然会报错) /usr/local/apache2/bin/apxs -c -i mod_proxy_http.c proxy_util.c

把 proxy 编译成模块,然后再把 proxy 的配置加入配置文件,去掉下面三行记录的#号,如果不存在,添加以下下内容。

LoadModule proxy_module modules/mod_proxy.so #必须的模块 LoadModule proxy_connect_module modules/mod_proxy_connect.so #应用软件代理 例如 QQ,MSN LoadModule proxy_http_module modules/mod_proxy_http.so #http请求代理 访问网页

一、正向代理

  先说一正向代理(Forward Proxy),通常普通用户使用的比较多的,是正向代理。也就是在浏览器的网络连接属性框中,填写上一个代理服务器的ip和端口,即可通过代理服务器中转,去浏览网页。有时候网站对单个 IP 某些操作进行了次数限制,设置代理 IP 访问,不断的更改代理 IP 来突破网站限制,也是正向代理。

配置这种代理非常简单:

1、打开apache的conf,启用好 proxy 模块后,加入如下几行:(全局配置)

ProxyRequests On ProxyVia On <Proxy *> Order deny,allow Deny from all Allow from 192.16.10.0/24 </Proxy>

2、当然也可以把在虚拟主机中进行设置,如下:

启用虚拟主机

NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/test ServerName ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common <Directory "/var/www/test"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> ProxyRequests On ProxyVia On <Proxy *> Order deny,allow Deny from all Allow from 192.168.10.0/24 </Proxy> </VirtualHost>

然后保存退出,重启加载 Apache 服务,现在即可在浏览器的网络连接属性框中或 QQ 登录配置中,填写上 your_apache_server_ip 的 ip 地址,端口是 80,开始用代理了。
使用 Apache 提供的代理,也可以加身份验证,或者设置 ACL 来限制客户端来源等。这些配置就和普通的 Apache 站点配置一样。

其实关键就是要有 ProxyRequests 开启,功能就已经可以使用了。

二、反向代理

  反向代理也是个非常有用的功能。反向代理(Reverse Proxy)方式是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。常用做网站服务器配置,可以提供从防火墙外部代理服务器到防火墙内部安全内容服务器的加密连接,隐藏后端真实服务器,更加安全。如 负载均衡 ,CDN 缓存都是反向代理。配置方法如下:

  1、启用好 proxy 模块后,加入下边一内容:(全局配置)

  

ProxyRequests off <Proxy /test> Order deny,allow Allow from all </Proxy> ProxyPass /test http:// ProxyPassReverse /test http://

  2、在虚拟主机中进行设置,如下:

    启用虚拟主机

  

NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin [email protected] ServerName ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common ProxyRequests Off <Proxy /test> Order deny,allow Allow from all </Proxy> ProxyPass /test http:// ProxyPassReverse /test http:// </VirtualHost>

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/41393.html