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アプリケーションの名前を付けたディレクトリを再作成できました。この例では、context
Apache 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">