«Нет обработчика протокола, действительного для URL» с httpd mod_proxy_balancer

Я пытаюсь настроить аварийное переключение для сервера с обратным проксированием со статической копией ресурсов localhost, которые обычно обслуживаются системой управления контентом. Я использовал wget , чтобы получить статическую копию динамического сайта в целях аварийного переключения.

I ' Я пытался использовать конфигурацию, подобную Место выхода для директивы Apache ProxyPass? , чтобы начать работу, и это довольно просто, но я получаю ошибку в заголовке.

Вот мой (очищенная) конфигурация прокси:

DocumentRoot /var/www/www.example.com/htdocs

ProxyRequests Off
ProxyPreserveHost On

ProxyPass "/site/" "balancer://cms"
ProxyPassReverse "/site/" "balancer://cms"
ProxyPassReverse "/site/" "http://ip-10-1-1-229.ec2.internal/site/"

<Proxy "balancer://cms">
    #BalancerMember "http://ip-10-1-1-229.ec2.internal/site/" loadfactor=1
    # For localhost services, a backup of the CMS's site
    BalancerMember "http://127.0.0.1/site-backup/www.example.com/site/" loadfactor=10 status=+H
</Proxy>

<Directory "/var/www/www.example.com/htdocs/site-backup">
  Order allow,deny
  Allow from all

  Options Indexes FollowSymlinks
  DirectoryIndex index.html
</Directory>

(Здесь я закомментировал элемент балансировки, который идет в реальную систему CMS - эта часть работает нормально - так что я могу протестировать локальную статическую копию.)

В /var/www/www.example.com/site-backup/www.example.com/ есть файл index.html , который загружается, когда Я пытаюсь нажать http://www.example.com/site/ , но никакие другие ресурсы страницы (CSS, изображения и т. Д.) Не загружаются. У них есть URL-адреса на странице, например:

У меня есть файл foo.png в этом месте:

[прокси: предупреждение] [pid 3182: tid 2838395712] [клиент 71.127.40.115:38208] AH01144: для URL /site/site/sites/default/files/foo.png не действовал обработчик протокола. Если вы используете DSO-версию mod_proxy, убедитесь, что подмодули прокси включены в конфигурацию с помощью LoadModule., Referer: http://test.example.com/site/

Я заметил, что показанный URL в сообщении об ошибке есть лишний / site / в URL-адресе, поэтому я решил, что он удваивается, потому что я пытаюсь обслужить пространство URL-адресов, включая / site / из каталога содержащий / site / и wget , вероятно, сейчас не идеален, поэтому я создал символическую ссылку из /var/www/www.example.com/site-backups/www .example.com / site / site / sites -> /var/www.www.example.com/site-backups/www. example.com/site/sites. Это должно было исправить любую глупость из-за путаницы в URL.

Но это, похоже, ничего не исправило; mod_proxy все еще жалуется на протокол. mod_proxy_http определенно включен, поскольку обычная директива ProxyPass для CMS работает должным образом (при включении).

Я уверен, что это довольно просто. отсутствует, но я не могу понять это. Любая помощь будет принята с благодарностью.

6
задан 13 April 2017 в 15:14
3 ответа

facepalm

Kiderült, hogy hiányzott egy zárójel a ProxyPass irányelvemről:

ProxyPass "/site/" "balancer://cms"

-nak kellett volna lennie:

ProxyPass "/site/" "balancer://cms/"

(Vegye figyelembe a zárójel előtt a záró idézetet.)

Ez szó szerint megoldott mindent.

Örömmel törölöm ezt a kérdést, és válaszolok, ha az emberek "egyszerű tipográfiai hibaként" akarják lezárni, de most hagyom. Ha szavazattal szavazatom lesz erre a válaszra, akkor eltávolítom ezt a jegyzetet, és közszolgáltatásnak tekintem azokat, akik esetleg elkövetik ugyanazt a hibát.

11
ответ дан 3 December 2019 в 00:04

В моем случае мне нужен модуль proxy_ajp .

a2enmod proxy proxy_http proxy_ajp 
3
ответ дан 3 December 2019 в 00:04

La fel ca kujiy a trebuit să adaug mod_ajp .

Utilizez apache4.

Jurnalul meu a afișat mesajele după cum urmează:

No protocol handler was valid for the URL /jira. 
If you are using a DSO version of mod_proxy, 
make sure the proxy submodules are included in 
the configuration using LoadModule 

așa că am adăugat (adică necomentat) următoarea linie la httpd.conf:

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 

salvat, iar serverul apache a repornit.

1
ответ дан 3 December 2019 в 00:04

Теги

Похожие вопросы