我在服务器上运行 java web 应用程序,并希望使用 Apache 作为反向代理来访问它。该网络应用程序是互联网档案网络爬虫heritrix。它在 localhost 上运行,并在端口 8443 上打开一个 Web 界面。
网络服务器可在 上访问https://heritrix.mywebcrawler.com
。在https://heritrix.mywebcrawler.com/engine上的访问工作正常,也在工作页面 ( https://heritrix.mywebcrawler.com/engine/job/test ) 上。
在作业页面上是Configuration-referenced Paths,通过一种我不完全理解的机制,它们提供对日志、配置、报告和创建的文件的访问,直接访问本地文件系统上的路径。问题是:这个 URL 包含一个双斜杠//
,所以它们不能通过反向代理工作。我得到例如 URL https://heritrix.mywebcrawler.com/engine/anypath//home/user/heritrix/heritrix-3.4.0-20210923/jobs/test/warcs
。所有这些 URL 都以 开头https://heritrix.mywebcrawler.com/engine/anypath/
,后跟本地文件系统的绝对路径/home/user/heritrix/heritrix-3.4.0-20210923/jobs/test/seedsbs.txt?format=textedit
。
有没有办法删除虚拟主机配置中的第二个斜杠,以便这些链接工作?
我有以下虚拟主机配置:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin support@mywebcrawler.com
ServerName heritrix.mywebcrawler.com
LogLevel debug ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.heritrix.log
CustomLog ${APACHE_LOG_DIR}/access.heritrix.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/heritrix.mywebcrawler.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/heritrix.mywebcrawler.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLProxyEngine on
SSLProxyCheckPeerCN off
SSLProxyVerify none
ProxyHTMLEnable On
ProxyPass / https://localhost:8443/
ProxyPassReverse / https://localhost:8443/
ProxyHTMLURLMap https://localhost:8443/ /
</VirtualHost>
</IfModule>