在本地部署到 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
为了在 webapp 中提供自定义服务器 xml 创建 .ebextensions 文件夹,放置自定义server.xml文件并再添加一个文件:server-update.config,内容为:
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
命令将其添加。
这个解决方案的好处是,如果您升级 Tomcat 的版本(例如从 7 到 8),那么您不必担心更新server.xml
各种 WAR 文件。
此外,此示例用于添加UIREncoding
参数,但脚本很容易适应添加<Connector ... />'
原始问题的属性。