Как вы используете Apache для маршрутизации разных поддоменов на разные порты / серверы? - PullRequest
1 голос
/ 02 февраля 2012

На моем компьютере разработчика я хочу иметь сервер SSL и сервер, не использующий SSL (оба работают с одним и тем же кодом ..., но запустить оба сервера - это просто).

Для моего обычного сервера: я хочу, чтобы это был sub1.mydomain.com

Итак, я изменил свой VirtualHost так, что вместо того, чтобы сказать

mydomain.com
*.mydomain.com,

сказано

sub1.mydomain.com
*.sub1.mydomain.com

а затем для сервера SSL я только что сказал

sub2.mydomain.com
*.sub2.mydomain.com

за исключением случаев, когда я получаю URL sub2.mydomain, сервер, подключенный к sub1, обрабатывает запрос.

Что я здесь не так делаю?

Я использую ruby ​​на рельсах и apache.

РЕДАКТИРОВАТЬ: добавлены фактические виртуальные хосты

<VirtualHost *:80>
    DocumentRoot "/Users/me/projects/myproject/public"
    ServerName reg.mydomain.com
    #ServerAlias *.reg.mydomain.com
    ProxyPass / http://localhost:3001/
    ProxyPassReverse / http://localhost:3001
</VirtualHost>


<VirtualHost *:443>
    SSLEngine on
    SSLProxyEngine On
    RequestHeader set Front-End-Https "On"
    CacheDisable *
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    DocumentRoot "/Users/me/projects/myproject/public"
    ServerName ssl.mydomain.com
    #ServerAlias *.ssl.mydomain.com
    SSLCertificateKeyFile "/private/etc/apache2/certs/server.key"
    SSLCertificateFile "/private/etc/apache2/certs/server.crt"

    ProxyPass / https://localhost:3002/
    ProxyPassReverse / https://localhost:3002
    ProxyPreserveHost on    
</VirtualHost>

1 Ответ

1 голос
/ 03 февраля 2012

Похоже, вы пытаетесь использовать именованные виртуальные хосты?

http://httpd.apache.org/docs/2.2/vhosts/name-based.html

Предполагая, что rails не делает ничего лишнего, вы можете попробовать использовать виртуальный хост, которыйвыглядит так:

NameVirtualHost *

<VirtualHost *>
ServerName sub1.mydomain.com
DocumentRoot /var/www/sub1 or point this to the server instead.
</VirtualHost>

<VirtualHost *>
ServerName sub2.mydomain.com
DocumentRoot /var/www/sub2 or point this to the server instead.
</VirtualHost>
...