Apache服务器转发特定域名至Caddy服务器的实现方案咨询
Apache反向代理转发www.domain4.com至后端Caddy服务器解决方案
启用Apache所需模块
在服务器1(10.0.0.200)上执行以下命令,加载反向代理及HTTPS相关模块:sudo a2enmod proxy proxy_http ssl sudo systemctl restart apache2创建www.domain4.com虚拟主机配置
在/etc/apache2/sites-available/目录下新建www.domain4.com.conf文件,填入以下配置:# HTTP跳转至HTTPS <VirtualHost *:80> ServerName www.domain4.com Redirect permanent / https://www.domain4.com/ </VirtualHost> # HTTPS反向代理核心配置 <VirtualHost *:443> ServerName www.domain4.com # 替换为你的SSL证书路径(例如Let's Encrypt生成的证书) SSLCertificateFile /etc/letsencrypt/live/www.domain4.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.domain4.com/privkey.pem # 保留原请求Host头,确保后端Caddy识别域名 ProxyPreserveHost On # 转发所有请求至后端Caddy的443端口 ProxyPass / https://10.0.0.201:443/ # 修正响应头中的地址,避免客户端跳转错误 ProxyPassReverse / https://10.0.0.201:443/ # 若后端Caddy使用自签SSL证书,取消下方两行注释跳过证书验证 # ProxySSLVerify Off # ProxySSLPeerCN "www.domain4.com" # 可选:传递反向代理相关请求头,方便后端记录真实客户端信息 RequestHeader set X-Forwarded-Proto "https" RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}e" </VirtualHost>启用配置并重启Apache
执行命令激活虚拟主机配置,然后重载Apache服务:sudo a2ensite www.domain4.com.conf sudo systemctl reload apache2验证配置有效性
- 在服务器1上测试与后端Caddy的连通性:
curl https://10.0.0.201 -v -H "Host: www.domain4.com" - 查看Apache错误日志(
/var/log/apache2/error.log)排查潜在问题 - 从公网访问
https://www.domain4.com,确认请求成功转发至后端Caddy站点
- 在服务器1上测试与后端Caddy的连通性:
关键注意事项
- 确保服务器1与服务器2之间的内网连通正常,服务器2的防火墙需允许来自10.0.0.200的443端口入站请求
- 后端Caddy的配置需正确绑定
www.domain4.com域名,确保能处理Apache转发来的请求 - 若需SSL证书,可通过
certbot工具为该虚拟主机自动申请并配置Let's Encrypt证书
内容的提问来源于stack exchange,提问作者Greg A
相关产品推荐
相关产品推荐

