Назад | Перейти на главную страницу

Поддомены Apache2 www https proxypass

У меня довольно сложная установка. По крайней мере, для меня, поскольку я новичок в apache, mod_rewrite и всем остальном.

Я хочу вот что:

Итак, я написал код, который в основном работает, за исключением www.foo.bar.com. Сейчас работаю над новым.

Дело в том, что я не знаю, в каком порядке все будет работать правильно. Должен ли я сначала избавиться от www? Или надо настроить прокси вверху?

Вот мой новый файл.

Надеюсь, кто-нибудь поможет мне навести порядок.

# welcome page
<VirtualHost *:80>
    ServerName bar.com
    DocumentRoot /var/www/bar
</VirtualHost>

# ssl and proxy for subdomains
<VirtualHost *:443>
    ServerName foo.bar.com
    ServerAlias *.bar.com

    SSLEngine On
    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

    ProxyRequests Off
    ProxyPass / http://bar.com:8089/
    ProxyPassReverse / http://bar.com:8089/

    ProxyVia On
</VirtualHost>

<VirtualHost *:80 *:443>
    ServerName bar.com
    ServerAlias *.bar.com

    # remove www
    RewriteEngine On
    RewriteCond %{HTTP_HOST}    ^www\.(.+)              [NC]
    RewriteRule ^               http://%1%{REQUEST_URI} [R=301]

    # redirect https://bar.com -> http://bar.com
    RewriteCond %{HTTPS}        on
    RewriteCond %{HTTP_HOST}    ^bar.com$                    [NC]
    RewriteRule ^               http://bar.com%{REQUEST_URI} [L,R=301]

    # redirect http -> https
    RewriteCond %{HTTPS}        off
    RewriteRule (.*)            https://%{HTTP_HOST}%{REQUEST_URI}  [R=301]

    ErrorLog /var/log/foo/foo-error.log
    CustomLog /var/log/foo/foo-access.log combined
    LogLevel warn

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


################
# restrictions #
################

<Location /web/database>
    Order deny,allow
    Deny from all
    Allow from 1.2.3.4
</Location>