Назад | Перейти на главную страницу

Запуск Tomcat 7 и Apache 2 на одном сервере

Часть моего сайта должна работать по 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>

Вам придется немного повозиться с настройками конфигурации, но это должно обеспечить описанную вами настройку.