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

Статус сервера Apache при работе в качестве прокси-сервера

Мы запускаем apache в качестве прокси-сервера, а за apache стоит tomcat. Мы используем модуль server_status, но когда мы пытаемся получить доступ к server_status, как в https://host.com/server-status он перенаправляется на tomcat, и мы получаем ошибку 404. Я новичок в этом, пробовал просматривать документы apache, но не смог найти решение. Fyi.У нас включен ssl

Текущие настройки ssl.conf:

  ProxyRequests     Off
  ProxyPreserveHost On

  <Proxy http://localhost:8081/*>
      Order deny,allow
      Allow from all
  </Proxy>

  ProxyPass         /  http://localhost:8081/
  ProxyPassReverse  /  http://localhost:8081/
  ProxyPassReverse   /  http://myhost:8081/


    <Location /server-status>
            SetHandler server-status
            Order deny,allow
            Deny from all
            Allow from 10.90
    </Location>

После предложенных изменений

 ProxyRequests     Off
 ProxyPreserveHost On

<Proxy http://localhost:8081/*>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass         /server-status !
ProxyPass         /  http://localhost:8081/
ProxyPassReverse  /  http://localhost:8081/
ProxyPassReverse   /  http://myhost:8081/

Изменить 2:

Требовалось изменение httpd.conf, и я добавил ProxyPass /server-status ! под директивой для настройки прокси-модуля, и он работает.

Ты можешь использовать ! в директиве ProxyPass для исключений прокси. Что-то вроде

ProxyPass /server-status !

должен это сделать.

См. Дополнительную информацию в документации apache для директивы ProxyPass: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass , особенно

! Директива полезна в ситуациях, когда вы не хотите использовать обратный прокси для подкаталога, например

У меня было много сайтов, и на некоторых из них было «Постоянное перенаправление». Почему-то не работает (по крайней мере, у меня).

Я использую / server-status для мониторинга, поэтому мне нужно было подключиться к нему только с другого сервера в локальной сети. Поэтому я создал дополнительный Vhost с локальным IP-адресом в качестве ServerName следующим образом:

<VirtualHost *:80>
   ServerName   <<local_server_ip>>
   ServerAlias  <<local_server_ip>>
   ServerAdmin  foo@example.com

        DocumentRoot "/var/www/html"

    Options Indexes FollowSymLinks
</VirtualHost>

Я не эксперт, но у меня это сработало.