настройка базового виртуального хоста mod_proxy

11

Я пытаюсь настроить базовый виртуальный хост для передачи всех запросов на test.local на сервер WEBrick, который у меня работает на 127.0.0.1:8080, при этом все запросы к localhost направляются к моим статическим файлам в / var / www. Я использую Ubuntu 10.04.

У меня установлен libapache2-mod-proxy-html, и у меня включен модуль с прокси a2enmod. У меня также включен виртуальный хост. Однако всякий раз, когда я захожу в test.local, я всегда получаю загадочную ошибку 500-го сервера, и все мои журналы говорят мне:

[Thu Mar 03 01:43:10 2011] [warn] proxy: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

Вот мой виртуальный хост:

<VirtualHost test.local:80>
    LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
    ServerAdmin webmaster@localhost
    ServerName test.local
    ProxyPreserveHost On

    # prevents this folder from being proxied
    ProxyPass /static !

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

и вот мои настройки для mod_proxy:

<IfModule mod_proxy.c>
        #turning ProxyRequests on and allowing proxying from all may allow
        #spammers to use your proxy to send email.

        ProxyRequests Off

        <Proxy *>
        # default settings
                #AddDefaultCharset off
                #Order deny,allow
                #Deny from all
                ##Allow from .example.com

        AddDefaultCharset off
        Order allow,deny
        Allow from all
        </Proxy>

        # Enable/disable the handling of HTTP/1.1 "Via:" headers.
        # ("Full" adds the server version; "Block" removes all outgoing Via: headers)
        # Set to one of: Off | On | Full | Block

        ProxyVia On
</IfModule>

Кто-нибудь знает, что я делаю не так? Спасибо

SevenProxies
источник

Ответы:

35

Похоже, вы не загружаете mod_proxy_httpмодуль (который необходим для прокси на HTTP-серверах). У меня нет Ubuntu 10.04 передо мной, но IIRC это что-то вроде:

sudo a2enmod proxy_http
nickgrim
источник
Я включил proxy_http и proxy_html и перезапустил apache, но теперь я получаю ошибку 503. Вот журналы сразу после того, как я перезапустил 3 обновления на Firefox:
SevenProxies
[Чт марта 03 12:25:29 2011] [ошибка] (111) Отказ в соединении: прокси: HTTP: попытка подключения к 127.0.0.1:8080 (localhost) не удалась [Чт, марта 03 12:25:29 2011] [ошибка ] ap_proxy_connect_backend отключение работника для (localhost) [Чт марта 03 12:26:05 2011] [прокси] [ошибка]: HTTP: отключено соединение для (localhost) [Чт марта 03 12:26:10 2011] [ошибка] прокси: HTTP: отключено соединение для (localhost)
SevenProxies
На самом деле, вдруг он начал работать. Спасибо.
SevenProxies
1
В моем случае proxy_ajp отсутствовал (мы используем AJP для соединения с tomcat).
Томас Феррис Николаизен
ты только что спас мне жизнь @ThomasFerrisNicolaisen
Прас
2

Приведенный выше ответ не помог мне, поскольку я получал ту же ошибку, что и в комментарии автора в выбранном ответе. Тем не менее, я нашел следующий пост и изменения, которые решили мою проблему:

sudo /usr/sbin/setsebool -P httpd_can_network_connect 1

Источник: http://allscm.com/archives/apache2-proxy-disabled-connection-on-localhost.html

Майлз Штайнхаузер
источник
CentOS / RedHat / Fedora имеет SELinux. Убунту нет.
Мартейн Бургер
О боже, отличная мысль. Я пропустил тег [ubuntu] в оригинальном сообщении, но теперь вижу это спустя годы. Я был на CentOS 6 в то время, когда столкнулся с этой проблемой, поэтому мой неточный ответ здесь.
Майлз Штайнхаузер