VirtualHostにはTomcatアプリケーションを指すモードオーバーライドがあります。

VirtualHostにはTomcatアプリケーションを指すモードオーバーライドがあります。

Ubuntu 14.04で実行されるサーバーを設定しています。 ApacheとTomcatをインストールし、Apacheの書き換えモジュールとmod_jkを有効にしました。 Apacheがリクエストをアプリケーションコンテキストに正しく渡すようにmod_jkを正しく設定しました。私のドメイン名もサーバーを正しく指しており、それらを参照できます。しかし、仮想ホストファイルに問題があります。 Tomcatで実行されているアプリケーションのドメインをポイントしようとしています。現在持っている仮想ホストファイルです。

<VirtualHost *:80>
    ServerName www.domain.com
    DocumentRoot /var/www/domain

    RewriteEngine On
    RewriteRule \/$ /context [L]
</VirtualHost>

私は多くのバリエーションを試しましたが、運がありませんでした。問題の解決にご協力いただきありがとうございます。

**更新**

Tomcatアプリケーションの名前を付けたディレクトリを再作成できました。この例では、contextApache htmlフォルダにあります(/var/www/html/context)。今私の仮想ホストファイルは次のようになります。

<VirtualHost *:80>                                                       
        ServerName www.domain.com                                
        DocumentRoot /var/www/html/context/  

        <Directory />                                                    
                Options FollowSymLinks                                   
                AllowOverride None                                       
                RewriteEngine On                                         
                RewriteRule \/$ /context [L]                                
        </Directory>                                                     

        <Directory /var/www/html/context/>                                  
                Options Indexes FollowSymLinks MultiViews                
                AllowOverride None                                       
                Order allow,deny                                         
                allow from all                                           
        </Directory>                                                    
</VirtualHost> 

これで問題は、というTomcatアプリケーションを再構築しないことですcontext。結論として:

http://{{ip_address}}/context- 正常に動作し、Tomcatアプリケーションを表示します。

http://domain.com- 私を次にリダイレクトするHTMLコンテンツ/var/www/html/context

書き換え規則を強制的にTomcatアプリケーション名にリダイレクトする方法はcontext?上書きを上書きし、mod_jkと共にインストールされたアプリケーションにApache htmlディレクトリの内容を表示しない可能性があるグローバル設定はありますか?

助けてくれてありがとう。

ベストアンサー1

アップデート2

   <VirtualHost *:80>
        ServerName www.domain.com
        ServerAlias 10.10.10.10(server's IP) server'sFQDN 
        DocumentRoot /var/www/domain

        RewriteEngine On
        # Rewrite everything after ' / ' to /context/restofURLifany
        RewriteRule ^/(.*)$ /context/$1 [L,QSA,PT]
        # Rewrite ' / ' to /context
        #RewriteRule ^/$ /context [L,PT]
        # Send all '/context' traffic to prod loadbalancer ' prod_lb '
        JkMount /context prod_lb

        # Send all other traffic from root domain ' / ' to prod loadbalancer ' prod_lb '
        JkMount /* prod_lb

    </VirtualHost>

/etc/hosts上部に次の行を編集して追加します。

#IPaddr hostnames
10.10.10.10 serverFQDN hostname www.domain.com

あなたの問題は、あなたが使用しているApacheドメイン名がその仮想ホストに関連付けられていないことです。

次に追加httpd.conf:NameVirtualHost *:80

修正する

これはあなたが望むものですか?

RewriteRule ^/(.*)$ /context/$1 [L,QSA,PT]

mod_jkがインストールされている場合は、正しい方向を見つけるのに役立ちます。

仮想ホスト構成で

<VirtualHost *:80>
    ServerName www.domain.com
    DocumentRoot /var/www/domain

    # Send all traffic from root domain ' / ' to prod loadbalancer ' prod_lb '
    JkMount /* prod_lb

</VirtualHost>

Workers.properties ファイルから

# Define list of workers that will be used for mapping requests
worker.list=prod_lb,status

# Define Tomcat App Node1
# modify the host as your host IP or DNS name.
worker.node1.port=9999 #AJP1.3 port Tomcat listening on
worker.node1.host=127.0.0.1 #Insert FQDN or IP here (I prefer IPs for speed)
worker.node1.type=ajp13
worker.node1.lbfactor=1
worker.node1.cachesize=1
worker.node1.max_packet_size=16384
worker.node1.connect_timeout=10000
worker.node1.prepost_timeout=10000
worker.node1.socket_timeout=5000
worker.node1.socket_keepalive=True
worker.node1.reply_timeout=30000
worker.node1.max_reply_timeouts=3
worker.node1.recovery_options=0
worker.node1.domain=group1
worker.node1.stopped=false

# Load-balancing behavior
worker.prod_lb.type=lb
worker.prod_lb.balance_workers=node1
worker.prod_lb.max_reply_timeouts=10
worker.prod_lb.method=Session
worker.prod_lb.lock=P
worker.prod_lb.sticky_session=1
worker.status.type=status

Tomcatサーバー.xml

<!-- Define an AJP 1.3 Connector on port -->
<Connector port="9999" address="${jboss.bind.address}" protocol="AJP/1.3" 
   maxThreads="300" connectionTimeout="5000" maxHttpHeaderSize="16384" packetSize="16384" 
   emptySessionPath="true" enableLookups="false" />

<Engine name="jboss.web" defaultHost="localhost" jvmRoute="tomcat_node1">

おすすめ記事