ラベル Tomcat の投稿を表示しています。 すべての投稿を表示
ラベル Tomcat の投稿を表示しています。 すべての投稿を表示

proxy_ajp

mod_jkでもいんですが、より簡単な方法で。
http://www.orangesignal.com/myserver/linux/mod_proxy_ajp.shtml

以下に重要なとこだけ。
http.conf


<Location /tomcat>
ProxyPass ajp://localhost:8009/
Order allow,deny
Allow from xxx.xxx.xxx.xxx
</Location>



server.xml

AJP コネクタの設定を変更します。


<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
ホスト名参照を行わないようにします。
enableLookups="false"
ローカルアドレスからのみ受け付けるようにします。
address="127.0.0.1"
必要により最小スレッド数や最大スレッド数などを設定します。
※設定する値は一般的に Web サーバー側の値より小さくてかまいません。
minSpareThreads="4" maxSpareThreads="50" maxThreads="200" backlog="10"
接続タイムアウト(ミリ秒)を指定します。
connectionTimeout="20000"
最大 POST サイズなどを指定します。
maxPostSize="2097152" maxSavePostSize="4096"
必要により URI エンコーディングなどを指定します。
URIEncoding="Windows-31J" useBodyEncodingForURI="false"
xpoweredBy="false" />

独自のエラーページに遷移しよう!

SAStrutsはデフォルトでjspへの直接アクセスを禁止してます。
jspへ直接アクセスすると、org.seasar.struts.filter.RoutingFilterが400で不正リクエストの旨を返します。
うーん、これだとTomcatのバージョンとかばれちゃうから、独自のエラーページにしたいよね。ってときは、web.xmlに以下のように定義すればオッケー。
(まぁSAStrutsに限ったことではないんですけどね…)


<error-page>
<error-code>400</error-code>
<location>/WEB-INF/view/error/badrequest.html</location>
</error-page>



ちなみに、IEだと↑で指定しているhtmlのサイズが512バイト?だっけかな?より大きくないとIEデフォルトのエラーページが表示されちゃいます。
あれー指定したページが表示されないなぁ、↑で指定しているhtmlのサイズを1KByte位にしてみると表示されるかもしれません。

さぁ、次はインターセプターかなぁ、どーせMethodInterceptorを拡張するだけでしょうけど…

Tomcatのコネクションを再接続

いっつも忘れちゃうから残します。
以下の設定を加えることでプールされているコネクションの接続チェックしてくれます。
(切断されちゃってた場合、再接続してくれます。)
Tomcatのと言うより、DBCPのってのが正しいのかな?


testOnBorrow="true"
validationQuery="select 1 from dual"


実際の定義ファイルでは↓こんな感じかな。
<Resource
name="jdbc/repositoryDataSource"
auth="Container" type="javax.sql.DataSource"
maxActive="20"
maxIdle="10"
minIdle="2
initialSize="2"
maxWait="10000"
testOnBorrow="true"
validationQuery="select 1 from dual"

poolPreparedStatements="true"
username="root"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/slide?autoReconnect=true&characterEncoding=utf8"
/>


ちなみに、Seasar使ってる人はjdbc.diconを↓な感じで。

<component name="connectionPool"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">10</property>
<property name="allowLocalTx">true</property>
<property name="validationQuery">"select * from dual"</property>
<property name="validationInterval">10000</property>

<destroyMethod name="close"/>
</component>

サーブレットで画像をいじる場合の注意点

サーブレットで画像を生成したりする場合、

export CATALINA_OPTS="-server -Xmx256M -Xms128M -Xss256k -Djava.awt.headless=true"

ってな感じで「-Djava.awt.headless=true」が必要です。
(-server とか -Xmx とかは必要ないです。環境に合わせて適宜修正するか削除して下さい)

TomcatのBasic認証とIP制限

TomcatでのBasic認証とIP制限の設定方法。

■Basic認証
http://www.javaroad.jp/opensource/js_tomcat9.htm

■IP制限
http://www.javaroad.jp/opensource/js_tomcat7.htm

んー、ためになります。m(_ _)m