thiết lập máy chủ ảo mod_proxy cơ bản


11

Tôi đang cố gắng thiết lập một máy chủ ảo cơ bản để ủy quyền tất cả các yêu cầu để kiểm tra. Tập trung vào máy chủ WEBrick tôi đã chạy trên 127.0.0.1:8080 trong khi giữ tất cả các yêu cầu tới localhost sẽ chuyển đến các tệp tĩnh của tôi trong / var / www. Tôi đang chạy Ubuntu 10.04.

Tôi đã cài đặt libapache2-mod-proxy-html và tôi đã kích hoạt mô-đun với proxy a2enmod. Tôi cũng kích hoạt máy chủ ảo của mình. Tuy nhiên, bất cứ khi nào tôi đến test.local, tôi luôn gặp lỗi máy chủ 500 khó hiểu và tất cả các nhật ký của tôi đều nói với tôi là:

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

Đây là máy chủ ảo của tôi:

<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

và đây là cài đặt của tôi cho 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>

Có ai biết tôi đang làm gì sai không? Cảm ơn

Câu trả lời:


35

Có vẻ như bạn không tải mod_proxy_httpmô-đun (cần thiết để ủy quyền cho máy chủ HTTP). Tôi không có Ubuntu 10.04 trước mặt, nhưng IIRC có dạng như sau:

sudo a2enmod proxy_http

Tôi đã kích hoạt cả proxy_http và proxy_html và khởi động lại apache nhưng hiện tại tôi đang gặp lỗi 503. Đây là nhật ký từ ngay sau khi tôi khởi động lại với 3 lần làm mới trên firefox:
SevenProxies

[Thu Mar 03 12:25:29 2011] [lỗi] (111) Kết nối bị từ chối: proxy: HTTP: cố gắng kết nối với 127.0.0.1:8080 (localhost) không thành công [Thu Mar 03 12:25:29 2011] [lỗi ] ap_proxy_connect_backend worker vô hiệu hóa cho (localhost) [Thu Mar 03 12:26:05 2011] [error] proxy: HTTP: kết nối bị vô hiệu hóa cho (localhost) [Thu Mar 03 12:26:10 2011] [error] proxy: HTTP: kết nối bị vô hiệu hóa cho (localhost)
SevenProxies

Trên thực tế, đột nhiên nó bắt đầu làm việc. Cảm ơn bạn.
SevenProxies

1
Trong trường hợp của tôi, proxy_ajp bị thiếu (chúng tôi sử dụng AJP để kết nối với tomcat).
Thomas Ferris Nicolaisen

bạn vừa cứu mạng tôi @ThomasFerrisNicolaisen
Pras

2

Câu trả lời trên không giúp ích gì cho tôi vì tôi đã nhận được lỗi tương tự như trong nhận xét của tác giả trong câu trả lời đã chọn. Tuy nhiên, tôi đã tìm thấy bài đăng sau đây và thay đổi đã giải quyết vấn đề của tôi:

sudo /usr/sbin/setsebool -P httpd_can_network_connect 1

Nguồn: http://allscm.com/archives/apache2-proxy-disables-connection-on-localhost.html


CentOS / RedHat / Fedora có SELinux. Ubuntu thì không.
Martijn Burger

Oh, điểm tuyệt vời. Tôi đã bỏ lỡ thẻ [ubfox] trên bài đăng gốc, chỉ bây giờ mới thấy những năm sau đó. Tôi đã ở trên CentOS 6 tại thời điểm tôi gặp phải vấn đề này, do đó câu trả lời không chính xác của tôi ở đây.
Myles Steinhauser
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.