16

nodejs アプリを VPS (ubuntu 10.04) にデプロイしました。サブドメイン (subdomain.myapp.com:3000) でホストしており、IP アドレスは 1 つしかありません

デフォルトでは、ポート 80 がデフォルトとして apache によって使用されています。アプリをポート 3000 で実行する必要がありますが、URL は (subdomain.myapp.com) にする必要があります。

これはnodejsで可能ですか、それとも仮想ホストまたはApacheのファイルを微調整する必要がありますか?

4

3 に答える 3

15

はい、可能です

Apache仮想ホストファイルで、次のように構成します

<VirtualHost *:80>
    ServerName subdomain.myapp.com

    ProxyRequests off

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

    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
    ProxyPreserveHost on
</VirtualHost>

あなたが持っている必要があります

NameVirtualHost *:80

あなたのファイルの上に、またapache用にインストールされたプロキシモジュール(ubuntuのデフォルト設定だと思います)

LoadModule proxy_module lib/httpd/modules/mod_proxy.so

httpd.conf ファイルにある必要があります

その後、Apache を再起動する必要があります。

于 2013-01-13T13:01:41.840 に答える
0

私は同じことをする必要があり、@drinchevの答えはほとんどうまくいきましたが、開発ボックスでいくつかの仮想ホストを実行しているため、うまくいきませんでした。いくつかのマイナーな調整により、他のすべての仮想ホストが破壊されないようにしました。

<Proxy *>

する必要があった

<Proxy mynodejs.mydevbox.local>

<VirtualHost *:80>

する必要があった

<VirtualHost mynodejs.mydevbox.local:80>

したがって、ローカルの開発マシンの名前が「mydevbox.local」で、ノード vhost がポート 3000 でリッスンしている場合、最終的な構成は次のようになります。

<VirtualHost mynodejs.mydevbox.local:80>
    DocumentRoot "/Library/WebServer/Documents/mynodejs"
    ServerName mynodejs.mydevbox.local
    ServerAlias mynodejs.mydevbox.local

    ProxyRequests off

    <Proxy mynodejs.mydevbox.local>
            Order allow,deny
            Allow from all
    </Proxy>

    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
    ProxyPreserveHost on
    ErrorLog "/private/var/log/apache2/mynodejs_error_log"
    CustomLog "/private/var/log/apache2/mynodejs_access_log" common
</VirtualHost>

<VirtualHost myothervhost.mydevbox.local:80>
    DocumentRoot "/Library/WebServer/Documents/myothervhost"
    ServerName myothervhost.mydevbox.local
    ServerAlias myothervhost.mydevbox.local
    ErrorLog "/private/var/log/apache2/myothervhost_error_log"
    CustomLog "/private/var/log/apache2/myothervhost_access_log" common
</VirtualHost>

他の仮想ホストが続く可能性があります

于 2016-11-04T23:39:10.560 に答える