Ubuntu 18.04搭配Apache2部署Express应用出现502 Proxy Error问题求助
问题修复方案
1. 修正反向代理协议不匹配问题
你的Express服务使用http模块创建,是普通HTTP服务,没有启用SSL,但是Apache配置中ProxyPass和ProxyPassReverse都填写了https://127.0.0.1:3500/,用HTTPS协议请求本地HTTP服务,无法正常拿到响应。
操作步骤:
- 编辑80端口和443端口的Apache虚拟主机配置,把两处
ProxyPass、ProxyPassReverse的地址改为http://127.0.0.1:3500/ - 删除443端口配置中不需要的SSL代理相关参数:
SSLProxyEngine On SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off
(本地走HTTP代理不需要SSL校验,保留以上参数反而会导致请求异常)
2. 修正Express路由无响应问题
你当前的/路由逻辑仅做了日志打印,没有返回任何响应内容,请求会一直挂起直到超时,也会触发502错误。
操作步骤:
修改App.js的路由逻辑,增加响应返回:
app.get('/', function (req, res) { console.log('asdfasdf') res.send('服务正常') // 新增该行返回响应内容 })
3. 验证生效
- 重启Apache服务:
systemctl restart apache2 - 重启Express应用
- 本地先验证Express服务可用性:执行
curl http://127.0.0.1:3500,确认可以正常返回内容后再访问域名测试
内容的提问来源于stack exchange,提问作者Moldovan Andrei
相关产品推荐
相关产品推荐

