本地到tomcat部署的時候,我做(如下圖)此更改server.xml中,是有辦法,我可以提供這彈性魔豆?我如何配置提供彈性魔豆的tomcat
<Connector connectionTimeout="20000" port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
redirectPort="8443"/>'
感謝 '
本地到tomcat部署的時候,我做(如下圖)此更改server.xml中,是有辦法,我可以提供這彈性魔豆?我如何配置提供彈性魔豆的tomcat
<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 web應用程序中創建文件夾.ebextensions,放在那裏定製的server.xml文件,並添加一個多個文件:服務器update.config與內容:
container_commands:
replace-config:
command: cp .ebextensions/server.xml /etc/tomcat7/server.xml
實現這個無需更換整個Tomcat的server.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
命令。
這個解決方案的好處是,如果你升級你的Tomcat版本(例如從7到8),那麼你不必擔心在你的各種WAR文件中更新server.xml
。
此外,此示例用於添加UIREncoding
參數,但腳本非常容易適用於從原始問題中添加<Connector ... />'
屬性。
這真的是一個聰明的方式來配置URIEncoding。 –
我可以在不向我的代碼庫中添加.ebextensions的情況下執行此操作嗎?我沒有一個,我已經在Beanstalk中調配了tomcat實例。如果可能,我不想對代碼本身進行任何更改。 –
如果您使用ElasticBeanstalk,則推薦使用.ebextensions。 – bobmarksie
您好,我試圖做這種方式,我得到了以下錯誤消息:「配置文件.ebextensions /服務器update.config在應用程序版本gd377807髒包含無效YAML或JSON YAML例外:當掃描下一個標記發現字符「\ T」不能在「」啓動任何令牌,第2行,第3列:取代-配置:^,JSON例外:在位置0非預期的字符(C)..更新配置文件 –
TeraTon
這是因爲YAML沒有在該行開始支持TAB(\ t)的字符,你只能使用空格 –
@sebsto,哇,我希望不止一個「加一」給。 – Beachhouse