2012-02-11 19 views
2

私は、ポート80のWebサイトでTomcatとApacheを使ってRailoを正常にセットアップしました。しかし、同じドメインしかし、80以外のポート。Apache/Tomcat/Railo:同じドメインで2つの異なるポートを持つ2つのサイトを設定する

ポート9080とSSL証明書と基本認証で2番目のサイトセットアップがあります。私はそれにアクセスしてSSL証明書と認証のプロンプトを受け取ることができますが、それを通過すると、Railoはデフォルトページ(/opt/railo/tomcat/webapps/ROOT/index.cfmにあります)を出力しています。

これは、TomcatがApacheから2番目のサイトのservernameを取得していないかのように、Railoはどのdocbaseを使用するかを知っています。私は同じドメインを使用しようとしているからですか? Tomcatの設定のどこかでポート9080を指定する必要がありますか?

以下の設定を貼り付けました。どんな助けでも大歓迎です。

アパッチ:

<VirtualHost *:80> 
    ServerName sitename 
    ServerAlias domainname 
    DirectoryIndex index.cfm index.html index.htm 

    DocumentRoot "/web/sitename" 
    <Directory "/web/sitename"> 
    allow from all 
    Options +Indexes 
    </Directory> 
</VirtualHost> 

Listen 9080 
<VirtualHost *:9080> 
    ServerName sitename2 
    ServerAlias domainname 
    DirectoryIndex index.cfm index.html index.htm 
    SSLEngine on 
    SSLCertificateFile /web/ssl/server.crt 
    SSLCertificateKeyFile /web/ssl/server.key 

    DocumentRoot "/web/sitename2 
    <Directory "/web/sitename2"> 
    allow from all 
    Options -Indexes 
    AuthName .. basic auth settings .. 
    </Directory> 
</VirtualHost> 

Tomcatの(のserver.xml):

<Host name="sitename" appBase="webapps"> 
    <Context path="" docBase="/web/sitename" /> 
</Host> 

<Host name="sitename2" appBase="webapps"> 
    <Context path="" docBase="/web/sitename2" /> 
</Host> 
+0

どのようにApacheをTomcatに接続しましたか? Apacheをプロキシリクエストに設定してTomcatに渡す方法を示すAJPやその他の情報は表示されません。 Apacheから関連する設定を含めることはできますか? –

答えて

1

ここでの問題は、Tomcatの設定です。同じ "サイト名"を持つ2つのホストを持つことはできません。一方は他方を無効にします。理想的にはApacheと同じようにTomcatに複数のポートを傍受させることができますが、Coyote(TomcatのWebサーバー)はこの種の機能に関してApacheほど高度ではありません。 Tomcatを複数のポートで実行することについて私が見てきたほとんどの推奨事項は、Tomcatの別のインスタンスを同じマシン上で実行することを推奨しています。したがって、これは一般に受け入れられているようです。

Tomcatの2番目のインスタンスをインストールし、それにRailoをインストールした場合、2番目の仮想ホストに入ってくるリクエストを2番目のTomcatインスタンスに渡すようにApacheを設定できます。たとえば、Tomcatの2番目のインスタンスをAJPリスナーで受信して、9009ではなく9009にし、Apache仮想ホストをポート9009へのプロキシ要求に構成して、Tomcatの2番目のインスタンスに当てることができます。

次に、2番目のインスタンスでは、同じホストエントリを作成できますが、異なるdocbase属性を使用できます。例えば

<VirtualHost *:80> 
    ServerName sitename 
    ServerAlias domainname 
    DirectoryIndex index.cfm index.html index.htm 

    DocumentRoot "/web/sitename" 
    <Directory "/web/sitename"> 
    allow from all 
    Options +Indexes 
    </Directory> 
    <Proxy *> 
    Allow from 127.0.0.1 
    </Proxy> 
    ProxyPreserveHost On 
    ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ ajp://localhost:8009/$1$2 
</VirtualHost> 

Listen 9080 
<VirtualHost *:9080> 
    ServerName sitename2 
    ServerAlias domainname 
    DirectoryIndex index.cfm index.html index.htm 
    SSLEngine on 
    SSLCertificateFile /web/ssl/server.crt 
    SSLCertificateKeyFile /web/ssl/server.key 

    DocumentRoot "/web/sitename2 
    <Directory "/web/sitename2"> 
    allow from all 
    Options -Indexes 
    AuthName .. basic auth settings .. 
    </Directory> 
    <Proxy *> 
    Allow from 127.0.0.1 
    </Proxy> 
    ProxyPreserveHost On 
    ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ ajp://localhost:9009/$1$2 
</VirtualHost> 

それはあなたがやっている何のために単純な答えはないが、それはあなたの目標を達成します。

-ヨルダン

関連する問題