Часть моего сайта должна работать по HTTPS, и я создаю поддомен для этой части. У меня есть apache httpd 2 и Tomcat 7, работающие на одном сервере с тем же IP, Apache, конечно, на 80-м порту, а Tomcat - на 8080-м. Прямо сейчас я выполняю переадресацию домена для запросов, которые нужно запускать с tomcat. Например, mathteamhosting.com/mathApp может перенаправить на mathteamhosting.com:8080/mathApp.
Я хотел бы, чтобы Tomcat обрабатывал https-запросы для этого поддомена. Я не думаю, что в данном случае этот способ переадресации работает. Как мне настроить это так, чтобы Tomcat получал запросы на порт 443, а apache обрабатывал порт 80.
Чтобы быть более конкретным:
http://proctinator.com ==> запрос отправляется на веб-сервер Apache
https://private.proctinator.com ==> запрос отправляется на веб-сервер Apache
Я хотел бы, чтобы Tomcat обрабатывал https-запросы для этого поддомена. Я не думаю, что в данном случае этот способ переадресации работает. Как мне настроить это так, чтобы Tomcat получал запросы на порт 443, а apache обрабатывал порт 80.
Фактически, вы можете настроить виртуальные хосты для пересылки всех типов запросов, включая 443. Просто настройте два виртуальных хоста для одного и того же сервера, но пересылайте их по портам. Порт 80 может перейти на ваш веб-хост, а порт 443 - на ваш tomcate через ajp или http-прокси. Пример:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName proctinator.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine On
ServerName private.proctinator.com
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Вам придется немного повозиться с настройками конфигурации, но это должно обеспечить описанную вами настройку.