tomcat にローカルにデプロイするとき、server.xml にこの変更 (以下) を加えます。これを Elastic Beanstalk に提供する方法はありますか?
<Connector connectionTimeout="20000" port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
redirectPort="8443"/>'
ありがとう '
tomcat にローカルにデプロイするとき、server.xml にこの変更 (以下) を加えます。これを Elastic Beanstalk に提供する方法はありますか?
<Connector connectionTimeout="20000" port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
redirectPort="8443"/>'
ありがとう '
カスタムAMIを提供せずに今すぐ実行できます。次の手順に従います:http://aws.typepad.com/aws/2012/10/customize-elastic-beanstalk-using-configuration-files.html
カスタムサーバーxmlを提供するには、webappに.ebextensionsフォルダーを作成し、そこにカスタムserver.xmlファイルを配置し、次のファイルをもう1つ追加します。
container_commands:
replace-config:
command: cp .ebextensions/server.xml /etc/tomcat7/server.xml
Tomcatserver.xml
ファイル全体を置き換えずにこれを実装する別の方法は、.ebextensions
フォルダーで次を使用することです (例: tomcat.config
)
files:
"/tmp/update_tomcat_server_xml.sh":
owner: root
group: root
mode: "000755"
content: |
#! /bin/bash
CONFIGURED=`grep -c '<Connector port="8080" URIEncoding="UTF-8"' /etc/tomcat7/server.xml`
if [ $CONFIGURED = 0 ]
then
sed -i 's/Connector port="8080"/Connector port="8080" URIEncoding="UTF-8"/' /etc/tomcat7/server.xml
logger -t tomcat_conf "/etc/tomcat7/server.xml updated successfully"
exit 0
else
logger -t tomcat_conf "/etc/tomcat7/server.xml already updated"
exit 0
fi
container_commands:
00_update_tomcat_server_xml:
command: sh /tmp/update_tomcat_server_xml.sh
この構成はスクリプトを作成し ( files
)、それを実行します ( container_command
)。server.xml
スクリプトは文字列をチェックし、UIREncoding="UTF8"
見つからない場合はsed
コマンドを使用して追加します。
server.xml
このソリューションの良い点は、Tomcat のバージョンを (たとえば 7 から 8 に) アップグレードした場合、さまざまな WAR ファイルの更新について心配する必要がないことです。
また、この例はパラメーターを追加するためのものですが、スクリプトは元の質問からプロパティUIREncoding
を追加するのに非常に簡単に適合します。<Connector ... />'