UbuntuサーバーでMeteorサーバーを実行しています。しかし、Apacheに同じサーバー上のサブドメインを提供させようとすると問題が発生します。
main.domain.com-> Meteor
sub.domain.com-> Apache
Meteorはポート80で実行されています。以前にMeteorをポート3000で実行し、Nginxでリバースプロキシで提供しようとしましたが、Meteorの動作が悪くなり(tcp/websocketsの問題)、夜と夜が多すぎて持続できませんでした。自分のために。
そこで、Meteorをメインサーバーにするようにセットアップを元に戻し(アプリは正常に動作します)、サブドメインにサービスを提供するApacheをインストールします。問題は、Meteorサーバーをオーバーランしているように見えるため、ポート80でもApacheを提供できないことです。
経験から、私はMeteorのリバースプロキシを避けようとしていますが、サーバーの「すべてのポート80」を圧倒することなく、Apacheをサブドメイン専用にするのに十分な知識がありません。
この種の設定で両方のサービスを相互に動作させるにはどうすればよいですか?
更新:
EasyEchoの提案に従って、2つの異なるIPアドレスを使用することにしました。
私はRackspaceで「次世代」クラウドサーバーを使用しています(最新のgrub2/updatedカーネルで最新のUbuntu12.04LTSを実行しています。
Rackspaceは、クラウドサーバーでの追加のIPを許可していません( source ).。
OpenStackを搭載した次世代のクラウドサーバープラットフォームは、追加のIPアドレスをまだサポートしていません。
...ただし、サーバーの作成時に1つのIPv4と1つのIPv6を取得します。では、IPv6の時流に乗ってみませんか?言うのは簡単です。
これが私の「新しい問題」です。サブドメインをIPv6アドレス(DNSのAAAA)にマッピングし、IPv6アドレスをリッスンするようにApacheを構成した後、次の動作が発生します。
サーバーのリモートデスクトップから(freeNXを使用)、Firefoxで
私のワークステーション(Win7 x64)から、Firefoxでも
これが私のApache構成です:
/ etc/Apache2/ports.conf
NameVirtualHost [my:ip:v6:address]:80
Listen [my:ip:v6:address]:80
<IfModule mod_ssl.c>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
/ etc/Apache2/sites-enabled/default
<VirtualHost [my:ip:v6:address]:80>
ServerAdmin webmaster@localhost
ServerName sub.domain.com
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/error.log
LogLevel warn
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
これを「アドバタイズ」として機能するように修正できますか?
うーん、これを行うために複数のIPアドレスは必要ありません。
NginXやHAProxyなどの軽量なもので0.0.0.0:80をリッスンし(スケーリングは問題になりません)、トラフィックを下の関連レイヤーにリバースプロキシし、別のポートで実行します(0.0ではなくlocalhostでリッスンします)。 0.0)。
そのため、Apache.your_domain.com
のリクエストが届き、HAProxyは内部でトラフィックを別のポートで実行されているApacheにルーティングします。
meteor.your_domain.com
のリクエストが届き、HAProxyは内部でトラフィックをNode.jsにルーティングします...
可能であれば、マシンに複数のIPを割り当て、Meteorを一方のIPで80にバインドし、Apacheをもう一方のポート80にバインドするように設定します。 Apache Documentation および Meteor Demo を参照してください。これは、探しているものをカバーしているようです。
更新:
さて、それはたくさんの新しい情報です...
IPv4を使用しているため、ワークステーションからIPv6 ip/Hostに接続できない可能性があります。