Linux与云计算——第二阶段Linux服务器架设

第七章:网站WEB服务器架设—代理模块mod_proxy

使用mod_proxy#1

启用mod_proxy模块来配置转发代理。 m

[1] mod_proxy已经包含在httpd包并且默认已经被启动,可以快速完成配置。

# 模块默认已经启动

[root@client ~]# grep "mod_proxy" /etc/httpd/conf.modules.d/00-proxy.conf

[root@client ~]# vim /etc/httpd/conf.d/f_proxy.conf

# 编辑一个新文件

<IfModule mod_proxy.c>

    # forward proxy function ON

    ProxyRequests On

    <Proxy *>

        # access permission

        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

[2] 客户端浏览器配置代理服务器并且确认可以正常访问任何网站

1.16 使用mod_proxy#2

启用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.注意在完成本实验前,将上一个实验的转发代理请求关闭否则本实验无法进行。

[1] mod_proxy已经包含在httpd包并且默认已经被启动,可以快速完成配置。

# 模块默认被启动

[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

客户端上访问前端服务器可以看到由后端服务器响应的请求。

[2] 当有多台后端服务器的时候,可以实现负载均衡.

(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

在客户端上访问前端服务器,可以发现两台后端服务器的变化