Apache2 and proxy_balancer BalanceMember

I've got this Apache2 site configuration, allowing me to "run Apache as a proxy" of the localhost:8080 service.

<VirtualHost *:80>
    ServerName foo.mydomain.com
    RedirectPermanent / https://foo.mydomain.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName foo.mydomain.com

    RewriteEngine On

    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
    RewriteRule ^/(.*)$ balancer://upstream%{REQUEST_URI} [P,QSA,L]

    <Proxy balancer://upstream>
        # following directive generates the error
        BalancerMember http://127.0.0.1:8080
    </Proxy>

    ProxyRequests Off
    ProxyVia On
    ProxyPreserveHost On
    RequestHeader set X_FORWARDED_PROTO https

    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>

    SSLEngine               on
    SSLCertificateFile      /etc/apache2/certs/foo.mydomain.com/host.pem
    SSLCertificateKeyFile   /etc/apache2/certs/foo.mydomain.com/host.key

    ErrorLog ${APACHE_LOG_DIR}/error_foo_mydomain.log

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access_foo_mydomain.log combined
</VirtualHost>

When I restart Apache2 with service apache2 restart an error is returned.
Я видел, что проблема связана со следующей директивой:

BalancerMember http://127.0.0.1:8080

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

Конечно, оба модуля proxy и proxy_balancer включены.

0
задан 19 February 2016 в 12:23
1 ответ

Я нашел решение, позволяющее проксировать службу localhost: 8080 .

<VirtualHost *:80>
    ServerName foo.mydomain.com
    RedirectPermanent / https://foo.mydomain.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName foo.mydomain.com

    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/

    SSLEngine               on
    SSLCertificateFile      /etc/apache2/certs/foo.mydomain.com/host.pem
    SSLCertificateKeyFile   /etc/apache2/certs/foo.mydomain.com/host.key

    ErrorLog ${APACHE_LOG_DIR}/error_foo_mydomain.log

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access_foo_mydomain.log combined
</VirtualHost>
0
ответ дан 5 December 2019 в 10:41

Теги

Похожие вопросы