切换至SQL Server后反向代理无法外部访问内部应用求助
排查思路与解决方案
排查思路
1. 网络连通性排查
- 登录反向代理服务器(192.168.1.100),测试与应用服务器(192.168.2.200)443端口的连通性,执行命令:
telnet 192.168.2.200 443或nc -zv 192.168.2.200 443,确认跨VLAN防火墙未拦截反向代理到应用服务器的HTTPS请求。 - 在反向代理服务器执行
nslookup servername.domaine.gov.com,确认该域名解析结果为192.168.2.200,排除域名解析错误导致的转发失败。 - 从外部网络测试到反向代理公网映射IP的443端口连通性,确认公网端口映射规则正确、上层防火墙未拦截443端口入站请求。
2. 反向代理配置排查
- 查看Apache运行日志:错误日志路径
/var/log/httpd/error_log,访问日志路径/var/log/httpd/access_log,确认外部请求是否到达反向代理、转发过程中是否存在SSL握手失败、连接超时类报错。 - 临时将ProxyPass、ProxyPassReverse的目标域名替换为应用服务器IP,验证是否为域名解析导致的转发失败:
<VirtualHost *:443> ServerName application.gov.com DocumentRoot /www/false AddDefaultCharset off SSLEngine on Include /etc/httpd/conf.d/star_application.gov.com.include SSLProxyEngine On SSLProxyVerify none TimeOut 300 RewriteEngine on RewriteRule ^/$ /Web/Application [L,R=301] ProxyPass / https://192.168.2.200/ ProxyPassReverse / https://192.168.2.200/ </VirtualHost>
3. 应用服务器配置排查
- 查看IIS站点绑定配置,确认443端口已正确绑定
servername.domaine.gov.com域名、SSL证书有效。 - 查看IIS访问日志,确认是否收到反向代理转发的请求:如果未收到,问题出在反向代理到应用服务器的链路;如果收到返回异常状态码,根据状态码定位具体应用故障。
- 因内网访问正常,数据库连接配置异常概率极低,可放在最后排查。
解决方案
- 网络策略配置:如果跨VLAN防火墙拦截了反向代理到应用服务器的443请求,添加白名单规则允许192.168.1.100访问192.168.2.200的443端口。
- 域名解析修复:在反向代理服务器的
/etc/hosts文件中添加解析记录192.168.2.200 servername.domaine.gov.com,避免内网域名解析错误。 - CORS配置修复:两个应用的web.config中当前仅允许内网域名跨域访问,需补充外部访问域名,修改
Access-Control-Allow-Origin配置,示例如下:
<!-- 应用1配置 --> <add name="Access-Control-Allow-Origin" value="https://application.gov.com" /> <!-- 应用2配置 --> <add name="Access-Control-Allow-Origin" value="https://application.gov.com" />
如需同时支持内外网访问,可安装IIS官方CORS模块配置多源匹配规则。
4. 公网映射验证:确认公网443端口已正确映射到192.168.1.100的443端口,上层安全设备未拦截公网入站HTTPS请求。
内容的提问来源于stack exchange,提问作者Edon
相关产品推荐
相关产品推荐

