33

問題:異なるドメインの同じサーバーでNode-applicationとphp-applicationをホストする必要があります。

example.comは通常どおりポート80を使用する必要がありますが、node-example.comはポート3000にルーティングする必要があります。

ポート80から3000へのすべてのトラフィックのルーティングは、mod_proxyを使用して正常に機能します。したがって、次のようになります。

<VirtualHost *:80>
    ServerAdmin info@node-example.com
    ServerName  node-example.com
    ServerAlias www.node-example.com

    ProxyRequests off

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

    <Location />
            ProxyPass http://localhost:3000/
            ProxyPassReverse http://localhost:3000/
    </Location>

</VirtualHost>

ただし、これにより、example.comとnode-example.comの両方がlocalhost:3000をポイントし、Node-appを実行するようになります。

example.comがポート80を指すようにする方法はありますか?

たとえば、example.com/old-adminがポート80をポイントしても問題ありません。

4

2 に答える 2

39

<VirtualHost *:80>タグを2つ作るだけ

<VirtualHost *:80>
    ServerAdmin info@node-example.com
    ServerName www.node-example.com

    ProxyRequests off

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

    <Location />
            ProxyPass http://localhost:3000/
            ProxyPassReverse http://localhost:3000/
    </Location>

</VirtualHost>
<VirtualHost *:80>
    ServerAdmin info@node-example.com
    ServerName  node-example.com    

    ProxyRequests off

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

    <Location />
            ProxyPass http://localhost:80/
            ProxyPassReverse http://localhost:80/
    </Location>

</VirtualHost>

そのように動作するはずです;)

または、localhost:80アプリがノードでない場合は、そのターゲットの<Proxy *>&タグを削除して、index.html への静的パスに<Location />置き換えることができます。DocumentRoot /var/www/node-example.com

于 2013-01-10T14:21:16.407 に答える