В дополнение к 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>
Сначала вы включили мод прокси на apache? Во-вторых, попробуйте удалить ProxyPreserveHost On
Кроме того, убедитесь, что порт открыт; проще всего проверить по адресу http://www.yougetsignal.com/tools/open-ports/ (Введите адрес сайта и порт 80)
Надеюсь, это поможет
. (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>