我问了这个问题in OTRS forum,但是他们的主要重点是OTRS的功能,而不是与apache代理的交互。
我有一个运行OTRS(基于Perl的支持票证系统)的内部服务器。 我的DMZ中有一个反向代理,可以为内部网页/应用程序执行代理和SSL卸载。我的代理服务器是带有Apache2的Ubuntu 18。除了对OTRS而言,我会收到奇怪的页面错误外,它几乎可以正常工作。它曾经很不错,但是由于是从OTRS 5更新到OTRS6,所以它是如此糟糕,以至于我们只能登录才能登录https。
如果我使用https,它会抛出一条消息:“ OTRS已检测到可能的网络问题”,并说要重新加载页面或等到浏览器自行建立连接。如果我稍等片刻,我会收到一条新消息,指出“在临时连接断开后已重新建立连接。由于此页面上的该元素可能已停止正常工作”,它继续说您需要重新加载这页纸。但是,它只是不断循环显示这些消息,并产生拍打错误。
每次移动到新票证时,我还会获得其他斜杠(/
)。
像这样:https://myotrs.mydomain.com/otrs////////////index.pl?
通过代理同时在http和https上都添加了斜杠。它只会在OTRS网站上发生,而不会在由同一代理处理的其他网站上发生。
这是我的代理虚拟主机文件的示例。
<VirtualHost *:443>
ServerName help.mydomain.com
ServerAlias help.mydomain.net
ServerAdmin it@mydomain.com
ErrorLog /var/log/apache2/proxiedhosts-ssl_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel info
CustomLog /var/log/apache2/access-ssl.log combined
ProxyRequests off
ProxyPass / http://helpdesk.mydomain.local/
<Location /otrs>
ProxyPassReverse http://helpdesk.mydomain.local/otrs/
</Location>
<Location /otrs-web>
ProxyPassReverse http://helpdesk.mydomain.local/otrs-web/
</Location>
# Use mod_proxy_html to rewrite URLs
SetOutputFilter proxy-html
# commented out
https://help.mydomain.com/otrs/
https://help.mydomain.com/otrs-web/
# Disable compressed communication between Apache and target server
RequestHeader unset Accept-Encoding
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# Allows the proxying of an SSL connection
SSLProxyEngine On
# certificate
SSLCertificateFile /etc/ssl/certs/help.mydomain.com/help.mydomain.com.crt
SSLCertificateKeyFile /etc/ssl/private/SHA2_mydomain.key
</VirtualHost>
答案 0 :(得分:0)
我已经签出了您的配置文件,建议您尝试更改
<Location /otrs>
ProxyPassReverse http://helpdesk.mydomain.local/otrs/
</Location>
到
<Location /otrs/>
ProxyPassReverse http://helpdesk.mydomain.local/otrs/
</Location>
在原始配置文件中,如果您浏览https://myotrs.mydomain.com/otrs/index.pl,将被重定向到https://myotrs.mydomain.com/otrs//index.pl。然后,如果您单击页面,您将被重定向到https://myotrs.mydomain.com/otrs///index.pl。然后您就陷入了循环之中。