我在 Unix 服务器上建立了一个网站。
我和另外两名开发人员在一个团队里工作,他们也负责该网站。
要求是在同一个 unix 服务器的两个不同目录中运行同一个站点的两个或多个版本。这是因为两个开发人员将在相同的文件上处理相同的功能,并且拥有同一个站点的不同版本将阻止彼此修改其他开发人员的文件。
现在我已将整个网站 webapps 内容复制到同一台服务器的另一个目录中。
我有先前安装的 tomcat,它指向原始的 webapps 目录。
现在我需要做什么才能托管我已复制到新目录的新网站。
这里有哪些可行的选择?
答案1
我建议bin/catalina.sh
在文本编辑器中打开并从这一点开始向下阅读:
# -----------------------------------------------------------------------------
# Control Script for the CATALINA Server
#
# Environment Variable Prerequisites
#
# Do not set the variables in this script. Instead put them into a script
# setenv.sh in CATALINA_BASE/bin to keep your customizations separate.
bin/setenv.sh
默认情况下不存在,但它是一个真正的瑰宝:任何放置在此类文件中的变量或脚本都由 提供bin/catalina.sh
,而 反过来会在每次调用bin/startup.sh
时调用。bin/shutdown.sh
- 从该点继续向下阅读,并记下各种变量及其作用。其中一些变量您可能已经很熟悉,例如
JAVA_HOME
。其他变量可能不熟悉,例如CATALINA_OPTS
,应尽可能优先使用JAVA_OPTS
。 - 检查
bin/startup.sh
并bin/shutdown.sh
仔细查找自定义项:文档中解释的所有变量都不bin/catalina.sh
应定义。不了解的管理员和开发人员bin/setenv.sh
倾向于直接修改启动和关闭脚本,这是一种不好的做法。将这些自定义项移至,bin/setenv.sh
以便您可以更好地跟踪两个 Tomcat 容器之间的差异。 - 用于
JAVA_HOME
指定 Java 的不同安装路径。Tomcat 将执行$JAVA_HOME/bin/java
,而不是变量中碰巧存在的 Java 版本PATH
。(除非JRE_HOME
存在,否则我指示您阅读的文档解释了两者的区别)如果每个 Tomcat 都需要使用不同版本的 Java,则它们应该有不同的JAVA_HOME
路径。如果它们应该使用相同版本的 Java,则两者的变量应该相同。 - 调整和更改 Tomcat 正在监听的端口。必须调整所有不在注释块 ( ) 内的
conf/server.xml
单词实例,否则将发生端口冲突。port
<!-- -->
- 如果您要求这两个 Tomcat 都必须位于单个端口后面,那么您要么需要在它们前面安装一个负载平衡器,要么需要一个代理流量的 Web 服务器。Web 服务器可以在同一台机器上运行,
127.0.0.1
在这种情况下,您可以代理到 localhost ()。根据请求的 URI,让负载平衡器或 Web 服务器将流量路由到适当的 Tomcat。