基本的なmod_proxy仮想ホストのセットアップ


11

test.localへのすべてのリクエストを127.0.0.1:8080で実行しているWEBrickサーバーにプロキシし、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>

誰かが私が間違っていることを知っていますか?ありがとう

回答:


35

mod_proxy_httpモジュールをロードしていないようです(HTTPサーバーへのプロキシに必要です)。目の前にUbuntu 10.04はありませんが、IIRCは次のようなものです。

sudo a2enmod proxy_http

proxy_httpとproxy_htmlの両方を有効にし、Apacheを再起動しましたが、現在503エラーが発生しています。:ここで私は、Firefoxの3つのリフレッシュして再起動した後、右からのログです
SevenProxies

[2011年3月3日12:25:29] [エラー](111)接続拒否:プロキシ:HTTP:127.0.0.1:8080(localhost)への接続試行に失敗しました[2011年3月3日12:25:29] [エラー] ap_proxy_connect_backend(localhost)のワーカーを無効にする[Thu Mar 03 12:26:05 2011] [error] proxy:HTTP:(localhost)[Thu Mar 03 12:26:10 2011]の接続を無効にする[error] proxy:HTTP: (ローカルホスト)のため接続不可
SevenProxies

実際、突然動作し始めました。ありがとうございました。
SevenProxies

1
私の場合、proxy_ajpがありませんでした(AJPを使用してTomcatに接続します)。
トーマスフェリスニコライセン14年

uが私の人生@ThomasFerrisNicolaisen保存
PRAS

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はサポートしていません。
マーティンバーガー

ああ、素晴らしい点。元の投稿の[ubuntu]タグを見逃しましたが、その数年後にしか見えません。私がこの問題に遭遇したとき、私はCentOS 6を使用していたので、ここでの私の不正確な答えは。
マイルズシュタインハウザー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.