기본 mod_proxy 가상 호스트 설정


11

localhost에 대한 모든 요청을 / var / www의 정적 파일로 유지하면서 127.0.0.1:8080에서 실행중인 WEBrick 서버에 test.local에 대한 모든 요청을 프록시하도록 기본 가상 호스트를 설정하려고합니다. 우분투 10.04를 실행 중입니다.

libapache2-mod-proxy-html이 설치되어 있고 a2enmod 프록시로 모듈을 활성화했습니다. 가상 호스트도 활성화했습니다. 그러나 test.local에 갈 때마다 항상 cryptic 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_httpHTTP 서버로 프록시하는 데 필요한 모듈을 로드하지 않는 것 같습니다 . 내 앞에 Ubuntu 10.04가 없지만 IIRC는 다음과 같습니다.

sudo a2enmod proxy_http

proxy_http와 proxy_html을 모두 활성화하고 아파치를 다시 시작했지만 503 오류가 발생합니다. 다음은 파이어 폭스
번의

[2011 년 3 월 12 일 12시 25 분 29 초] [오류] (111) 연결 거부 됨 : 프록시 : HTTP : 127.0.0.1:8080(localhost) 연결 시도 실패 [2011 년 3 월 12 일 12시 25 분 29 초] [오류 ] (localhost)에 대한 ap_proxy_connect_backend 작업자 비활성화 [Thu Mar 03 12:26:05 2011] [오류] 프록시 : HTTP : (localhost)에 대한 연결 비활성화 [Thu 03 03:26:10 2011] [오류] 프록시 : HTTP : (localhost)에 대한 연결이 비활성화되었습니다
SevenProxies

실제로 갑자기 작동하기 시작했습니다. 감사합니다.
SevenProxies

1
필자의 경우 proxy_ajp가 누락되었습니다 (톰캣과 연결하기 위해 AJP를 사용합니다).
Thomas Ferris Nicolaisen

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가 있습니다. 우분투는 그렇지 않습니다.
Martijn Burger

오 마이, 훌륭한 지적입니다. 원래 게시물에서 [ubuntu] 태그를 놓쳤습니다. 나는이 문제에 부딪 쳤을 때 CentOS 6을 사용 했으므로 여기에 부정확 한 답변이 있습니다.
Myles Steinhauser
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.