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

Настройка виртуального хоста для веб-службы Tomcat 8 на AWS EC2

В дополнение к Apache по умолчанию в AWS EC2 Linux я установил Tomcat 8 и развернул на нем веб-сервис.

Текущий URL (который работает): http://example.com:8080/MyService/api/generatePath

Я хочу сделать это короче с помощью поддомена api.mydomain.com, чтобы я мог использовать этот URL: http://api.example.com/generatePath.

Это то, что я сделал на /etc/httpd/conf/httpd.conf, но это не работает:

<VirtualHost *:80>
    ServerName api.example.com
    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://localhost:8080/MyService/api
    ProxyPassReverse / http://localhost:8080/MyService/api
</VirtualHost>

(1) Чтобы удалить /MyService/ часть вашего URL, переименуйте свой MyService.war файл в ROOT.war и скопируйте его в папку своих веб-приложений, используя sudo cp. Обычно ожидается, что ваша установка tomcat автоматически создаст ROOT-каталог в той же папке.

(2) Чтобы удалить: 8080, зайдите на сайт через: 80, который не указан в строке URL, используя установленный httpd.conf вы заявили. Отредактируйте следующие две вещи, чтобы они выглядели так.

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<VirtualHost *:80>
    ServerName api.example.com

    ProxyRequests On
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    <Location "/">
            Order allow,deny
            Allow from all
    </Location>
</VirtualHost>

Сначала вы включили мод-прокси на apache? Во-вторых, попробуйте удалить ProxyPreserveHost On

Кроме того, убедитесь, что порт открывается; Самый простой способ проверить это перейти на http://www.yougetsignal.com/tools/open-ports/ (Введите адрес веб-сайта и порт 80)

Надеюсь это поможет