You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不同服务器部署Apache WebServer与WordPress并实现流量路由

Apache与WordPress跨服务器部署方案解答

完全可以实现二者分离部署,这种分层架构反而比单机部署更适合生产环境,既可以提升安全性,也支持Web层、应用层分别独立扩容。

整体架构逻辑

  • 公网访问请求先打到Apache前端服务器,这台服务器仅对外暴露公网,负责反向代理路由、静态资源响应,不运行业务代码
  • WordPress程序、PHP运行环境、数据库部署在内网应用服务器,仅对Apache前端的内网IP开放服务,不直接暴露到公网

具体配置步骤

前置准备

  • 两台服务器内网互通,确认WordPress应用服务器的80/443端口对Apache前端内网IP放通
  • 先在WordPress应用服务器本地完成环境搭建、WordPress初始化,本地测试访问正常

1. Apache前端服务器配置

首先启用反向代理所需模块:

  • Debian/Ubuntu 系统执行命令:a2enmod proxy proxy_http proxy_html headers
  • CentOS/RHEL 系统修改Apache主配置文件,加载以下模块:
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_html_module modules/mod_proxy_html.so
    LoadModule headers_module modules/mod_headers.so
    

新增虚拟主机配置,示例如下:

<VirtualHost *:80>
    ServerName 你的实际站点域名
    # 反向代理转发规则
    ProxyPass / http://<WordPress应用服务器内网IP>/
    ProxyPassReverse / http://<WordPress应用服务器内网IP>/
    # 传递真实客户端信息到后端
    ProxyPreserveHost On
    RequestHeader set X-Real-IP %{REMOTE_ADDR}s
    RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s
    RequestHeader set X-Forwarded-Proto "http"
</VirtualHost>

配置完成后重启Apache生效:systemctl restart apache2(CentOS下为systemctl restart httpd)

2. WordPress应用服务器适配

修改WordPress根目录下的wp-config.php文件,新增以下配置,适配反向代理场景:

// 配置站点域名,和前端Apache的ServerName保持一致
define('WP_HOME', 'http://你的实际站点域名');
define('WP_SITEURL', 'http://你的实际站点域名');
// 读取前端传递的真实客户端IP
if (isset($_SERVER['HTTP_X_REAL_IP'])) {
    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
}

优化建议

可以将WordPress站点下的wp-content、wp-includes等静态资源目录通过rsync定时同步到Apache前端服务器,新增规则让Apache直接响应静态资源请求,无需转发到后端应用服务器,大幅提升访问性能。

安全提示

WordPress应用服务器的SSH、数据库、Web服务端口都仅对Apache前端的内网IP放通,禁止对公网开放,降低被攻击风险。

内容的提问来源于stack exchange,提问作者DrkStr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:45:03