【问题标题】:How do you use apache to route different subdomains to different ports / servers?您如何使用 apache 将不同的子域路由到不同的端口/服务器?
【发布时间】:2012-02-02 19:53:58
【问题描述】:

在我的开发机器上,我希望能够拥有一个 SSL 服务器和一个非 SSL 服务器(两者都运行相同的代码......但运行两个服务器是容易的部分。)

对于我的常规服务器:我希望它是 sub1.mydomain.com

所以,我修改了我的 VirtualHost,而不是说

mydomain.com
*.mydomain.com,

它说

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

然后对于 SSL 服务器,我只是说

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

除了,每当我访问 sub2.mydomain 网址时,附加到 sub1 的服务器都会处理该请求。

我在这里做错了什么?

我正在使用 ruby​​ on rails 和 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>

【问题讨论】:

    标签: ruby-on-rails apache virtualhost


    【解决方案1】:

    听起来您正在尝试命名虚拟主机?

    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>
    

    【讨论】:

    • 所以,我就是不能嵌套子域?
    • 我已经添加了我的虚拟主机。也许我只是不明白其中的区别=\
    • 第二个虚拟主机只在443端口不是吗?那么任何基本的http请求都只会去第一个虚拟主机?对 http reg.mydomain.com 和 http ssl.mydomain.com 的请求是否都转到 reg.mydomain.com 的当前行为? https ssl.mydomain.com 和 https reg.mydomain.com 都去 ssl.mydomain.com 吗?
    • 没错。一切都转到 reg.mydomain.com 上的服务器。 =\
    • 尝试将 :443 换成 :80。您可以将它们都绑定到端口 80。然后您应该转到正确的服务器。如果您希望它同时处理 https 和 http 连接,您可以完全从第二个虚拟主机中删除端口号。
    猜你喜欢
    • 1970-01-01
    • 2016-12-12
    • 2016-05-10
    • 1970-01-01
    • 2020-04-16
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多