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配置代理转发请求。