Я не могу правильно настроить обратный прокси-сервер apache2 для контекстного приложения Tomcat.
Я использую URL-адрес www.projet-okinawa.ch в браузере для внешнего доступа к приложению.
Мой tcp-порт 80 маршрутизируется на 8080 iptables.
(sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080)
Я определил виртуальный хост, чтобы поймать URL-адрес www.projet-okinawa.ch с порта 8080 и перенаправить запрос на порт ssl.
<VirtualHost *:8080>
ServerName www.projet-okinawa.ch
ServerAlias projet-okinawa.ch
Redirect permanent / https://www.projet-okinawa.ch:8443/
</VirtualHost>
I defined a second virtual host to catch the same url from the port 8443 that enable ssl and manage the reverse proxy.
<VirtualHost *:8443>
ServerName www.projet-okinawa.ch
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://web.projet-okinawa.org:8081/okinawa
ProxyPassReverse / http://web.projet-okinawa.org:8081/okinawa
<Location />
Order allow,deny
Allow from all
</Location>
SSLCertificateFile /etc/letsencrypt/live/os-vps276.projet-okinawa.org/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/os-vps276.projet-okinawa.org/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/os-vps276.projet-okinawa.org/chain.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
Вы можете заметить, что для контекста веб-приложения задано значение / okinawa.
Моя конфигурация tomcat прослушивает TCP-порт 8080, 8081 и 8443.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
proxyName="www.projet-okinawa.ch" proxyPort="8443" scheme="https" />
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
URIEncoding="UTF-8"
keystoreFile={keystore} keystorePass={password} />
Веб-приложение выполняется на локальном хосте Catalina в контексте / okinawa. Контекст был определен не с помощью дескриптора контекста, а с помощью автоматического развертывания. Приложение работает правильно и доступно для внутреннего использования через порт 8080 (например: http://web.projet-okinawa.org/okinawa/participatewithus.html).
При доступе к нему через прокси с помощью www.projet-okinawa.ch я получил HTTP-статус 404 - / okinawaokinawa / exception.
Я тестировал много разных способов настройки обратного прокси, но безуспешно. Я не понимаю, почему возвращаемый URL-адрес не подключается к www.projet-okinawa.ch без контекста, который кажется дублированным.
Любая помощь приветствуется.