configuration d'un hôte virtuel mod_proxy de base

11

J'essaie de configurer un hôte virtuel de base pour proxy toutes les demandes de test.local vers un serveur WEBrick que j'ai exécuté sur 127.0.0.1:8080 tout en gardant toutes les demandes adressées à localhost dans mes fichiers statiques dans / var / www. J'utilise Ubuntu 10.04.

J'ai libapache2-mod-proxy-html installé et j'ai le module activé avec le proxy a2enmod. J'ai également mon hôte virtuel activé. Cependant, chaque fois que je vais sur test.local, je reçois toujours une erreur de serveur cryptique 500 et tous mes journaux me disent:

[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.

Voici mon hôte virtuel:

<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

et voici mes paramètres pour 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>

Est-ce que quelqu'un sait ce que je fais mal? Merci

SevenProxies
la source

Réponses:

35

On dirait que vous ne chargez pas le mod_proxy_httpmodule (qui est nécessaire pour effectuer un proxy vers des serveurs HTTP). Je n'ai pas Ubuntu 10.04 devant moi, mais IIRC c'est quelque chose comme:

sudo a2enmod proxy_http
nickgrim
la source
J'ai à la fois proxy_http et proxy_html activés et redémarré apache mais maintenant j'obtiens une erreur 503. Voici les journaux juste après avoir redémarré avec 3 rafraîchissements sur Firefox:
SevenProxies
[Jeu 03 mars 12:25:29 2011] [erreur] (111) Connexion refusée: proxy: HTTP: la tentative de connexion à 127.0.0.1:8080 (localhost) a échoué [Jeu mars 03 12:25:29 2011] [erreur ] ap_proxy_connect_backend désactivant le travailleur pour (localhost) [jeu 03 mars 12:26:05 2011] [erreur] proxy: HTTP: connexion désactivée pour (localhost) [jeu 3 mars 12:26:10 2011] [erreur] proxy: HTTP: connexion désactivée pour (localhost)
SevenProxies
En fait, tout d'un coup, cela a commencé à fonctionner. Je vous remercie.
SevenProxies
1
Dans mon cas, proxy_ajp manquait (nous utilisons AJP pour nous connecter avec tomcat).
Thomas Ferris Nicolaisen
tu viens de me sauver la vie @ThomasFerrisNicolaisen
Pras
2

La réponse ci-dessus ne m'a pas aidé car je recevais la même erreur que dans le commentaire de l'auteur dans la réponse sélectionnée. Cependant, j'ai trouvé le message et le changement suivants qui ont résolu mon problème:

sudo /usr/sbin/setsebool -P httpd_can_network_connect 1

Source: http://allscm.com/archives/apache2-proxy-disabled-connection-on-localhost.html

Myles Steinhauser
la source
CentOS / RedHat / Fedora a SELinux. Ubuntu ne fonctionne pas.
Martijn Burger
Oh mon, excellent point. J'ai raté la balise [ubuntu] sur le message d'origine, seulement maintenant que des années plus tard. J'étais sur CentOS 6 au moment où j'ai rencontré ce problème, d'où ma réponse inexacte ici.
Myles Steinhauser