在 Ubuntu 18.04 上使用 Apache2 HTTP 服务器配置反向代理

反向代理是指代理服务器(在本例中为 Apache2 HTTP)接受所有流量并将其转发到特定资源,如后端服务器或者容器。
后端服务器可以是另一个 Apache2 或者像 Nginx 这样的开源 HTTP 服务器。

反向代理可用于增加安全性,或者用于负载平衡,限制对某些位置的访问以防止攻击等等。

第 3 步:启用 Apache2 代理

现在 Apache2 已安装,请运行以下命令以启用其代理模块。

sudo a2enmod proxy
sudo a2enmod proxy_http

完成后,启用 VirtualHost 站点并重新启动 Apache2 以启用重新加载模块。

sudo a2ensite Apache2Proxy.conf 
sudo systemctl restart apache2.service

浏览器打开服务器主机名 (example.com)。
现在我们将被代理转发到端口 8080 上的 Apache2 服务器上。
http://example.com

第 1 步:安装 Apache2

安装 Apache2 很容易。
要做到这一点,只需运行下面的命令

sudo apt-get update
sudo apt-get install apache2

安装 Apache2 后,可以使用以下命令停止、启动和启用 Apache2 (启用Apache2服务:在服务器引导时自动启动服务)。

sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service

要测试 Apache2 设置,请打开浏览器并浏览到服务器主机名或者 IP 地址,我们应该会看到 Apache2 默认测试页面,如下所示。

http://localhost

第 2 步:将 Apache2 配置为反向代理

Apache2 代理模块的 ProxyPass 和 ProxyPassReverse 函数提供了反向代理。
要使用 ProxyPass 和 ProxyPassReverse,我们必须首先知道要将流量引向何处。

在典型设置中,反向代理服务器将侦听默认 HTTP 端口上的所有流量,即端口 80 。

托管内容的后端服务器将侦听自定义端口,比如8080。

在这里,我们将设置 Apache2 以侦听端口 80,然后将流量定向到在端口 8080 上列出的后端服务器

下面,运行命令来创建一个名为 Apache2Proxy.conf 的代理 VirtualHost 文件。

sudo nano /etc/apache2/sites-available/Apache2Proxy.conf

然后在文件中添加代码块然后保存。

<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
        ServerAdmin webmaster@example.com
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        ProxyRequests Off
        <Proxy *>
          Order deny,allow
          Allow from all
        </Proxy>

        ProxyPass/http://127.0.0.1:8080/
        ProxyPassReverse/http://127.0.0.1:8080/
        <Location />
          Order allow,deny
          Allow from all
        </Location>
   </VirtualHost>

完成后保存文件。

该文件包含服务器名称以及代理服务器接收到的流量所定向的 proxy_pass。

日期:2020-07-07 20:57:15 来源:oir作者:oir