啓用mod_proxy模塊來配置轉發代理。 m前端
# 模塊默認已經啓動web
[root@client ~]# grep "mod_proxy" /etc/httpd/conf.modules.d/00-proxy.conf vim
[root@client ~]# vim /etc/httpd/conf.d/f_proxy.conf後端
# 編輯一個新文件瀏覽器
<IfModule mod_proxy.c>服務器
# forward proxy function ON負載均衡
ProxyRequests Onide
<Proxy *>網站
# access permissionui
Require ip 127.0.0.1 10.0.0.0/24
</Proxy>
</IfModule>
[root@client ~]# vi /etc/httpd/conf/httpd.conf
# line 42: 增長監聽端口
Listen 8080
[root@client ~]# systemctl restart httpd
啓用mod_proxy模塊來配置反向代理。環境以下:
(1) www.example.com [192.168.96.100] - Web Server#1
(2) web01.example.com [192.168.96.200] - Web Server#2
這個實驗的目標是發送給www.example.com的請求被轉發給web01.example.com.注意在完成本實驗前,將上一個實驗的轉發代理請求關閉,不然本實驗沒法進行。
# 模塊默認被啓動
[root@server ~]# grep "mod_proxy" /etc/httpd/conf.modules.d/00-proxy.conf
[root@server ~]# vim /etc/httpd/conf.d/r_proxy.conf
# 建立一個新文件
<IfModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
# backend server and forwarded path
ProxyPass / http://web01.example.com/
ProxyPa***everse / http://web01.example.com/
</IfModule>
[root@server ~]# systemctl restart httpd
在客戶端上訪問前端服務器能夠看到由後端服務器響應的請求。
(1) www.example.com [192.168.96.100] - Web Server#1
(2) web01.example.com [192.168.96.200] - Web Server#2
(3) web02.example.com [192.168.96.201] - Web Server#3
發送給前端www.example.com的請求會被轉發給兩臺後端服務器。
[root@server ~]# vi /etc/httpd/conf.d/r_proxy.conf
# 從新配置該文件
<IfModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
# specify the way of load balancing with "lbmethod". it's also possible to set "bytraffic".
ProxyPass / balancer://cluster lbmethod=byrequests
<proxy balancer://cluster>
BalancerMember http://web01.example.com/ loadfactor=1
BalancerMember http://web02.example.com/ loadfactor=1
</proxy>
</IfModule>
[root@server ~]# systemctl restart httpd
在客戶端上訪問前端服務器,能夠發現兩臺後端服務器的變化。