反向代理之Apache
浏览量:1024
1、什么是反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
2、环境规划

3、web节点部署
在两台web-node节点中均使用Yum安装一个Apache用于做真实机,监听8080端口
web-node1.com部署
[root@web01 ~]# rpm -ivh [root@web01 ~]# yum install -y gcc glibc gcc-c++ make screen tree lrzsz ##部署httpd服务 [root@web01 ~]# yum install -y httpd [root@web01 ~]# sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf [root@web01 ~]# systemctl start httpd [root@web01 ~]# echo "web-node1.com" > /var/www/html/index.html [root@web01 ~]# curl http://192.168.56.11:8080 web-node1.com
web-node2.com部署
[root@web02 ~]# rpm -ivh [root@web02 ~]# yum install -y gcc glibc gcc-c++ make screen tree lrzsz ##部署httpd服务 [root@web02 ~]# yum install -y httpd [root@web02 ~]# sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf [root@web02 ~]# systemctl start httpd [root@web02 ~]# echo "web-node2.com" > /var/www/html/index.html [root@web02 ~]# curl http://192.168.56.12:8080 web-node2.com
4、反向代理部署
Apache 源码编译安装,并监听80端口
[root@lb01 src]#wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.25.tar.gz [root@lb01 src]#tar xf httpd-2.4.25.tar.gz [root@lb01 src]#cd httpd-2.4.25 [root@lb01 httpd-2.4.25]# ./configure --prefix=/usr/local/httpd-2.4.25 --enable-so --enable-modules="all" [root@lb01 httpd-2.4.25]# make && make install [root@lb01 httpd-2.4.25]# ln -s /usr/local/httpd-2.4.25/ /usr/local/httpd [root@lb01 httpd-2.4.25]# sed -i 's@#ServerName www.example.com:80@ServerName 192.168.56.10:80@g' /usr/local/httpd/conf/httpd.conf [root@lb01 httpd-2.4.25]# /usr/local/httpd/bin/apachectl -t Syntax OK [root@lb01 httpd-2.4.25]#/usr/local/httpd/bin/apachectl -k start
4.1 Apache配置反向代理
在/usr/local/httpd/conf/httpd.conf配置引用proxy配置文件
Include conf/extra/httpd-proxy.conf
4.2配置proxy反向代理
[root@lb01 conf]# cat /usr/local/httpd/conf/extra/httpd-proxy.conf LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so LoadModule slotmem_shm_module modules/mod_slotmem_shm.so ProxyRequests Off <Proxy balancer://web-cluster> BalancerMember http://192.168.56.11:8080 loadfactor=1 BalancerMember http://192.168.56.12:8080 loadfactor=2 </Proxy> ProxyPass /proxy balancer://web-cluster ProxyPassReverse /proxy balancer://web-cluster <Location /manager> SetHandler balancer-manager Order Deny,Allow Allow from all </Location>
模块注释:
#proxy模块 LoadModule proxy_module modules/mod_proxy.so #链接模块 LoadModule proxy_connect_module modules/mod_proxy_connect.so #http代理模块 LoadModule proxy_http_module modules/mod_proxy_http.so #负载均衡模块 LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #算法默认是byrequest,可以是bytraffic或者bybusyness #算法模块,根据server的请求量 LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so #算法模块,根据server流量 LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so #算法模块,根据server繁忙 LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so LoadModule slotmem_shm_module modules/mod_slotmem_shm.so ProxyRequests Off #LB集群组名称 <Proxy balancer://web-cluster> #node节点并设置权重(可很多) BalancerMember http://192.168.56.11:8080 loadfactor=1 BalancerMember http://192.168.56.12:8080 loadfactor=2 </Proxy> #跳转至LB集群组名称,交由后端WEB节点处理 ProxyPass /proxy balancer://web-cluster ProxyPassReverse /proxy balancer://web-cluster # Apache管理页面 <Location /manager> SetHandler balancer-manager Order Deny,Allow Allow from all </Location>
4.3重载Apache
[root@lb01 conf]# /usr/local/httpd/bin/apachectl -k graceful
测试反向代理
[root@lb01 ~]# curl http://192.168.56.10/proxy web-node2.com [root@lb01 ~]# curl http://192.168.56.10/proxy web-node2.com [root@lb01 ~]# curl http://192.168.56.10/proxy web-node1.com [root@lb01 ~]# curl http://192.168.56.10/proxy web-node2.com
4.5 使用http访问Apache管理页面
访问 http://192.168.56.10/manager

到此,Apache代理配置完成!

神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。