У меня установлен Tomcat 8 на моем сервере через порт 8080, который я предоставляю через защищенный Apache (используя Proxy Pass).
Вот моя конфигурация Apache:
<VirtualHost *:443>
ServerName myserver.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /odata/ http://172.31.33.105:8080/
ProxyPassReverse /odata/ http://172.31.33.105:8080/
<Proxy *>
allow from all
</Proxy>
RequestHeader set X-Forwarded-Port 443
RequestHeader set X-Forwarded-Scheme https
</VirtualHost>
Здесьэто конфигурация Tomcat server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
address="172.31.33.105"
proxyName="myserver.com"
scheme="https" />
Все работает хорошо до тех пор, пока здесь.Если я вызываю мое заявление: https://myserver.com/odata/D3a1593adae89/odata.svc/
, я получаю:
<service xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom" xml:base="https://myserver.com:443/D3a1593adae89/odata.svc/">
<workspace>
<atom:title>Default</atom:title>
<collection href="Maintables">
<atom:title>Maintables</atom:title>
</collection>
</workspace>
</service>
Проблема: Если вы видите атрибут xml: base в результате Tomcat украшает адрес портом, и я действительно не знаю, как его удалить.Изначально без схема = "https" Tomcat оформлял xml: base как http://myserver.com.com:80.Я искал и пробовал что-то вроде установки proxyPort пустым, но ничего.