使用本地tomcat,我的应用程序网址为:http://ip:port/myapp 但是当将其部署到AWS Elastic Beanstalk时,网址变为http://some_domain.com。我希望网址为http://some_domain.com/myapp。
我该怎么做?我发现了一些关于为.ebextensions添加一些配置文件的内容,但我不确定我应该做什么以及它是否有用。
更新
我创建了一个.ebextensions文件夹并放入以下文件:
server.xml中
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
<Listener className="org.apache.catalina.core.JasperListener"/>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<GlobalNamingResources>
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
</GlobalNamingResources>
<Service name="Catalina">
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
<Engine defaultHost="localhost" name="Catalina">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>
<Context docBase="EizeRest" path="/EizeRest" reloadable="true" source="org.eclipse.jst.jee.server:EizeRest"/>
</Host>
</Engine>
</Service>
</Server>
服务器-update.config
container_commands:
replace-config:
command: cp .ebextensions/server.xml /etc/tomcat7/server.xml
部署时我得到以下错误:
&#34; aws无法检测应用程序部署&#34;
另一次更新:
我在服务器的“事件”选项卡中看到以下错误:无法统计&#39; .ebextensions / server.xml&#39;:没有此类文件或目录
答案 0 :(得分:0)
我相信你需要采取以下步骤:
path=myapp
Beanstalk文档为此提供了相关指南: http://aws.typepad.com/aws/2012/10/customize-elastic-beanstalk-using-configuration-files.html
基本上,指南说您需要通过在应用程序根目录中创建以下文件来将server.xml复制到beanstalk:.ebextenstions/tomcat.config
:
container_commands:
replace-config:
command: cp .ebextensions/server.xml /etc/tomcat7/server.xml
不要忘记同时提交.ebextensions文件夹中的server.xml
和tomcat.config
文件。
答案 1 :(得分:0)
你必须放置你的&#34; .ebextensions&#34;与WEB-INF文件夹处于同一级别的文件夹。这样做会删除&#34; .ebextensions / server.xml:没有这样的文件或目录&#34;错误。