Я все еще новичок в Apache и его настройках, и у меня возникла проблема с моим веб-сервером, на котором я обслуживаю приложение Redmine на Ruby, а также статический контент.
Апач 2.2
В настоящее время настроены следующие прокси-серверы:
ProxyPass /portal https://mypage.domain.com:8181/portal
ProxyPassReverse /portal https://mypage.domain.com:8181/portal
ProxyPass /examples http://mypage.domain.com:8555/portal
ProxyPassReverse /examples http://mypage.domain.com:8555/portal
ProxyPass / balancer://redmine_cluster/
ProxyPassReverse / balancer://redmine_cluster/
<Proxy balancer://redmine_cluster>
BalancerMember http://REDMINEMACHINENAME:3000/
</Proxy>
DocumentRoot "X:/app/Redmine/public"
<Directory "X:/app/Redmine/public">
Require all granted
Options -MultiViews
</Directory>
RequestHeader set X-Forwarded-Proto "https"
При попытке доступа:
Редмайн:
mypage.domain.com
он переносит меня в Redmine. Хорошо.
/портал:
mypage.domain.com/portal
это терпит неудачу
Не найдено Запрошенный URL /portal/ не найден на этом сервере.
WEB.SERVER.ADDRESS - - [09/Oct/2015:16:14:15 -0700] "GET /portal/ HTTP/1.1" 404 207
MY.IP.ADDRESS - - [09/Oct/2015:16:14:15 -0700] "GET /portal/ HTTP/1.1" 404 207
/Примеры
mypage.domain.com/examples
MY.IP.ADDRESS - - [09/Oct/2015:16:10:11 -0700] "GET /examples/ HTTP/1.1" 200 1285
работает
Можно ли настроить Apache так, чтобы я мог использовать
mypage.domain.com
mypage.domain.com/portal
mypage.domain.com/examples
чтобы добраться до всех мест, куда мне нужно добраться? Как?
Есть ли у вас предложения по более подходящему названию?
решение1
Это не совсем ответ, но у меня закончилось место в поле для комментариев. Я настроил вашу конфигурацию на ноутбуке. Это определенно происходит, потому что вы проксируете на https-сайт для /portal. Если вы можете отправить его на http-сайт, это немедленно исправит проблему. Я проверил и, как и вы (скорее всего), у меня включены mod_proxy и mod_proxy_connect (по крайней мере, в конфигурации), но по какой-то причине запрос не отправляется на https-сайт, независимо от порта. В Ubuntu довольно сложно увидеть, какие модули на самом деле загружены.
Не увидев никаких данных на порту на сниффере, я проверил apache2 и получил:
[pid 397] read(5, <unfinished ...> [pid 458] accept4(4, 0xa9ee615c, [128], SOCK_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
что не очень полезно, но показывает, что абсолютно никаких запросов не делается. Вы можете поиграть с https-частью отдельно, она выдаст ту же ошибку независимо от других проксированных URL.