【发布时间】:2021-07-16 22:08:49
【问题描述】:
我尝试从 Docker 部署我的应用程序。 在 Dockerfile 中:
FROM tomcat:9-jre8-alpine
ADD config/tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml
ADD config/settings.xml /usr/local/tomcat/conf/settings.xml
ADD config/context.xml /usr/local/tomcat/webapps/manager/META-INF/context.xml
ADD target/author.war /usr/local/tomcat/webapps/ROOT.war
EXPOSE 8080
CMD ["catalina.sh","run"]
所以,在 tomcat-users.xml 中:
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd
http://tomcat.apache.org/xml "
version="1.0">
<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>
在 settings.xml 中:
<servers>
<server>
<id>TomcatServer</id>
<username>tomcat</username>
<password>s3cret</password>
</server>
</servers>
在 context.xml 中:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow=".*" />
</Context>
但是,尝试远程访问 Tomcat 管理器应用程序(plesk 中的域),我得到了: “您无权查看此页面。默认情况下,Manager 只能通过与 Tomcat 在同一台机器上运行的浏览器访问。如果您希望修改此限制,您需要编辑 Manager 的 context.xml 文件。 ..”
另外:对于 localhost-connection,它的工作很好!远程连接的问题
【问题讨论】:
-
是的,我试过了。特别是,将 "llow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" 替换为 allow=".*" 但是没有成功
-
他们要求评论整个
<Valve />块(有效地删除它)。除了 localhost 之外,您可能只想更具体地说明您允许哪个 exact 主机,但为了提供从任何地方的访问权限,Valve 部分是关键。 (哎呀,向下滚动 - 这是另一个建议移除阀门的答案 - 但仍然:这是关键) -
我评论了这个
。结果相同...... -
您需要找到正确的文件进行更改,有多个 context.xml 文件。