Установите VirtualHost для веб-сервиса Tomcat 8 на AWS EC2

Установите VirtualHost для веб-сервиса 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

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

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

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

решение2

(1) Чтобы удалить /MyService/часть вашего URL, переименуйте ваш MyService.warфайл в ROOT.warи скопируйте его в папку webapps с помощью 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>

Связанный контент