如何为 WordPress 设置反向代理
已发表: 2023-01-16作为 WordPress 管理员,您可能会发现自己处于必须设置反向代理服务器的情况。 幸运的是,设置反向代理服务器相对容易,您可以使用多种不同的软件包。 本文简要概述了如何使用 NGINX 为您的 WordPress 站点设置反向代理服务器。
什么是反向代理服务器以及为什么将它们用于 WordPress
反向代理服务器代表客户端从一台或多台服务器检索资源。 然后将这些资源传送到客户端,而无法判断它们来自代理服务器。
反向代理很有用,因为它们可以隐藏原始服务器的存在和特征。 例如,反向代理可以通过屏蔽恶意请求或大量流量来为 Web 应用程序提供额外的安全性、性能和可靠性层。
如果您想了解更多信息,网上有很多资源可以帮助您了解有关反向代理服务器的更多信息。 可能需要设置反向代理服务器有几个常见原因:
- 通过内容缓存提高站点性能
反向代理的一个常见用例是缓存频繁请求的 WordPress 内容。 例如,如果一组 Web 服务器为一个网站提供服务,则反向代理可以在单个服务器上缓存网站的静态内容(例如 HTML 页面、图像和 CSS 文件)。 这可以提高 WordPress 网站的性能,因为每次用户请求页面时不需要从 Web 服务器检索内容。
- 卸载 CPU 密集型任务,例如图像大小调整
反向代理服务器可以从 WordPress 服务器卸载 CPU 密集型任务,例如图像大小调整,方法是将这些任务的请求转发到更适合处理这些任务的服务器。 这可以通过释放 WordPress 服务器上的资源用于其他任务来帮助提高 WordPress 站点的性能。
- 通过过滤请求和阻止恶意流量提高安全性
反向代理服务器可以通过过滤请求和阻止恶意流量来提高 WordPress 的安全性。 通过过滤请求,反向代理服务器可以阻止访问已知与恶意活动相关的特定 IP 地址或区域。 通过阻止恶意流量,反向代理服务器可以帮助减轻 DDoS 攻击和其他针对 WordPress 站点的攻击的影响。
- 使 WordPress 可以从不同的域或子域访问
如上所述,反向代理服务器代表客户端从一个或多个服务器检索资源。 这些资源可以是任何文件类型,但最常见的是网页。 反向代理服务器然后为客户端提供这些资源,它们看起来好像来自服务器本身。 这是通过配置反向代理服务器将对 WordPress 内容的请求转发到 WordPress 服务器来完成的,同时仍然让客户端产生他们正在直接从本地代理服务器访问内容的错觉。
最受欢迎的反向代理服务器
据 W3Techs 称,大约 83% 的网站不使用反向代理服务。 剩下的 17% 大部分是 CDN,因为反向代理通常出于安全目的隐藏它们的存在,这使得 W3Techs 等网站监控服务很难确定哪些是最广泛使用的。 以下是三种最常用的反向代理解决方案:
- NGINX
NGINX 是一种 Web 服务器,具有多种优势,例如增强的性能、安全性、可靠性和可扩展性。 您可以免费获得它,也可以使用商业版 NGINX Plus,用于具有基于 API 的设置可能性的公司网站。 不少大企业都在使用 NGINX——Cloudflare、Netflix、MaxCDN 等。 将 NGINX 配置为反向代理很容易,您可以对其进行个性化设置以满足您的需求。
- 漆
Varnish 是一种开源软件,可以提高高流量网站的性能。 它用作反向代理、负载平衡器、Web 应用程序防火墙和边缘身份验证服务器,并且支持边缘侧包含 (ESI) 以加快页面加载速度。 您可以将其用作 NGINX 或 Apache Web 服务器的前端,或将其设置为 WordPress 的反向代理。
- 阿帕奇流量服务器
Apache Traffic Server 是一个以其性能和容量着称的开源选项,最初由 Yahoo! 开发。 在他们将其赠送给 Apache 基金会之前作为商业服务。 它目前被许多内容网络和 CDN 使用,包括 Akami、Apple、Comcast、LinkedIn 和 Yahoo 来增强他们的系统。 此外,Apache HTTP 服务器 (Apache httpd) 可用于在您的 Web 服务器上设置反向代理,允许它向用户提供静态和动态内容,同时仍作为常规 Web 服务器运行。
- 代理服务器
HAProxy 是一种免费的开源反向代理和负载均衡器,旨在与许多现有的 Web 服务器架构一起工作,例如 Linux 系统和基于云的平台。 它利用事件驱动的 I/O 模型,可以在多个工作进程之间分发请求,类似于 NGINX。 HAProxy 以其即使在高峰负载期间也能处理大量流量的能力而闻名。 它被世界上一些最大的网站使用,例如 Airbnb、Reddit 和 Instagram。
WordPress 网站的反向代理服务器用例
尽管您也可以使用其他反向代理,但 NGINX 是最受欢迎的选择。 以下是为 WordPress 网站设置反向代理的三个主要用例:
- 单一服务器上的主网站和代理网站
如果主站点和代理站点都托管在同一个 Web 服务器上,则可以设置反向代理,以便从主站点加载代理站点。 您可以通过在主站点上配置所有相关的反向代理规则并将代理站点设置为通过代理加载来完成此操作。 此外,如果使用 SSL 证书,则必须在 wp-config.php 中制定特定规则以防止重定向循环。 请注意,不可能创建与用于加载站点的子目录相同的 URL。
- 仅在您的服务器上托管代理站点
要创建反向代理,您必须联系主网站的服务器管理员并在两台服务器上配置规则。 还应添加指向反向代理的域名。 这通常是通过链接到代理站点(例如 your_domain.com/blog)的子域(例如 blog.your_domain.com)完成的。 请注意,您需要服务器的 IP 地址才能完成设置过程。
- 主站点托管在您的服务器上
如果您只能访问主网站及其托管服务器,那么您应该设置反向代理并调整其设置,以便从外部主机拉取页面。 辅助服务器的管理员负责安装和配置要通过反向代理访问的代理站点。
为 WordPress 设置反向代理的步骤
为 WordPress 设置反向代理是提高网站性能的好方法。 它还可以帮助保护您的 Web 服务器免受恶意请求并帮助改善用户体验。 以下是为 WordPress 设置反向代理需要执行的步骤。
- 安装反向代理服务器
第一步是安装反向代理服务器。 我们推荐使用免费且开源的 NGINX Web 服务器。 也可以使用其他流行的 Web 服务器,例如 Apache,但我们假设您在本教程中使用的是 NGINX。 假设您想使用 NGINX 反向代理 (192.xx10) 以及已经启动并运行的 Apache Web 服务器 (192.xx20)。
在 Ubuntu 服务器上安装 NGINX 只需运行一条命令:
sudo apt-get 更新
sudo apt-get 安装 nginx
安装 NGINX 后,使用此命令禁用虚拟主机:
sudo unlink /etc/nginx/sites-enabled/default
现在是创建反向代理的时候了。 您可以通过在 etc/nginx/sites-available 目录中创建一个名为 reverse-proxy.conf 的文件来实现。 首先,导航到目录:
cd etc/nginx/sites-available
通过 vi 编辑器创建文件:
vi 反向代理.conf
将以下行添加到文件中:
服务器 {
听80;
地点 / {
proxy_pass http://192.xx20;
}
}
正如我们所见,代理通道允许通过反向代理的请求被传递到主服务器的远程套接字 192.xx20:80。 换句话说,两个服务器共享内容。 完成后,保存文件并退出编辑器。 要将信息转发到其他服务器,请在终端中使用 ngx_http_proxy_module。 最后,您需要使用以下命令链接到 /sites-enabled/ 来激活指令:
sudo ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf
剩下要做的就是测试反向代理。 您需要运行配置测试并重新启动 NGINX 以验证其性能。 使用以下命令检查 NGINX 是否正常工作:
服务 nginx 配置测试
服务 nginx 重启
如果测试失败,则意味着 Apache 可能未正确设置。
反向代理服务器限制
反向代理可能会带来重大的安全风险,因为它可以观察和修改通过它的所有流量。 如果通过反向代理发送 HTTPS 流量,则必须对数据进行解密和重新加密,这需要 SSL/TLS 证书的私钥。 如果黑客获得此反向代理的访问权限,他们就有可能记录密码并将恶意代码插入网站。
如果您和您的用户都不能直接访问主服务器,则反向代理可能会造成单点故障。 例如,如果一个反向代理服务于多个域,任何中断都会导致所有这些站点无法访问。 如果使用第三方反向代理,请不要忘记您正在与他们共享有关该站点的重要详细信息。
结论
为 WordPress 设置反向代理可以提高网站的安全性和性能。 为 WordPress 设置反向代理的步骤因服务器和配置而异。 通常,它们包括配置代理服务器、设置后端 Web 服务器和设置 WordPress 站点。 尽管设置反向代理服务器可能是有益的,但它也有局限性。