反向代理是指代理服务器(在本例中为 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。