代码改变世界

Apache反向代理的配置

2017-12-27 19:57  龙恩0707  阅读(11069)  评论(0编辑  收藏  举报

Apache反向代理的配置

一: Mac系统自带apache服务器

1. 查看apache版本命令如下:
   sudo apachectl -v

2. 启动apache
   sudo apachectl start

3. 重启apache
   sudo apachectl restart

二:概念描述
apache代理分为正向代理和反向代理:

1、正向代理: 客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web(需要在客户端的浏览器中设置代理服务器).

2、反向代理: 客户端能访问外部的web,但是不能访问目标web,目标web所在的网络内一台机器充当目标web的代理,客户端直接访问代理就像访问目标web一样.

更多的正向代理和反向代理 请baidu或google。

三:配置如下:

1. cd /etc/apache2 进入apache2的配置。
2. sudo vi httpd.conf (进入httpd.conf文件)查看。
2-1 备份原来的文件
sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.backup
3. 检查代理模块是否开启,如果没有打开,去掉下面代码前面的注释符号 #

LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
LoadModule proxy_balancer_module libexec/apache2/mod_proxy_balancer.so(负载均衡的功能,单纯的反向代理不需要注释)

4. 在httpd.conf的末尾添加如下代码:

<VirtualHost *:80>
      ServerName ss.xx.com 
      ProxyRequests off  
      Header set Access-Control-Allow-Origin *
      <Proxy *>
          Order deny,allow
          Allow from all
      </Proxy>
      <Location /xxyy>
          ProxyPass http://localhost:8892/
          ProxyPassReverse http://localhost:8892/
      </Location>
      <Location /ofc>
        ProxyPass http://localhost:8894/
        ProxyPassReverse http://localhost:8894/
    </Location>
</VirtualHost>

*:80   是指任何服务器且端口号是80端口。
ServerName: 指资源文件的指向的服务器名称(在hosts文件需要绑定 127.0.0.1 ss.xx.com)。
ProxyPass 和 ProxyPassReverse 及 http://localhost:8892/ 是我们请求真正的目的服务器。
比如我们在浏览器中输入 http://192.168.xx.xx:80/xxyy时候,页面会反向代理会返回 http://localhost:8892/ 的首页;
当我们在浏览器中输入 http://192.168.xx.xx:80/ofc 的时候,页面会反向代理会返回 http://localhost:8894/ 的首页;
以上就是最基本的使用apache配置代理转发请求。