在远程 OEL (Oracle Enterprise Linux) 7.8 服务器上,我有一个使用 HTTPS/8009 运行的后端 Web 应用程序。作为第三方应用程序,我没有选择禁用 SSL 或更改端口。
由于我需要从本地计算机的浏览器访问 Web 应用程序,我想到了使用 Apache httpd 设置反向代理(HTTP 到 HTTPS 映射)。现在我可以通过以下 URL 从本地浏览器访问 Web 应用程序:
http://10.157.146.97:1234/
仅供参考,在 Linux 机器内工作的 CURL 命令如下:
curl http://10.157.146.97:1234/
curl -k https://localhost:8009/
这是我的反向代理设置:
/etc/httpd/conf/httpd.conf
Listen 1234
<VirtualHost *:1234>
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPreserveHost On
ProxyPass / https://localhost:8009/
ProxyPassReverse / https://localhost:8009/
</VirtualHost>
一方面我很挣扎,早些时候我尝试在 ProxyPass/ProxyPassReverse 中使用 url 模式(/sample),但这导致 css/js 文件出现 HTTP 404(未找到),因为 web-app 的欢迎页面包含间接 css/js 路径(下面的示例代码)。所以用 (/) 替换 url 模式 (/sample) 也解决了这个问题。
previous Not working config:
ProxyPass /sample https://localhost:8009/
ProxyPassReverse /sample https://localhost:8009/
<script defer src="abc.js"></script><link href="xyz.css" rel="stylesheet"></head>