В дополнение к 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)
Надеюсь это поможет