我已经使用 ubuntu 12.04 LTS 创建了一个私有云。我有一个 maas 主服务器。在该服务器上,我想托管用 java、tomcat 和 mysql 编写的 Web 应用程序。我的 maas 主服务器 IP 地址是 192.168.43.191,DNS 名称是 ubuntucloud。因此,当我从浏览器调用它时,例如 (http: ubuntucloud),我可以看到“它正在工作。这是此服务器的默认网页。Web 服务器软件正在运行,但尚未添加任何内容”这句话。在 eclipse 中运行 tomcat 服务器时,我可以像 (http: ubuntucloud:8080/IRMultiAgent/) 一样调用我的 Web 应用程序。我想像 (http://www.ir_multi_agent/)。如何做到这一点? ps:由于错误,我省略了帖子中的一些“/”
答案1
您可以使用以下方式配置 Apache Web 服务器,将请求转发到 Tomcat mod_jk
:Apache Tomcat 连接器)。设置一个 Apache vhost,它充当某种代理来与 Tomcat 通信,并且还能够重写 URL。因此,ubuntucloud:8080/IRMultiAgent/
可以通过例如irmultiagent.ubuntucloud/
(智能操作指南)
由于您已将域配置ubuntucloud
为指向您的服务器,因此您应该也能够为设置这样的 DNS ir_multi_agent
。两者都可以指向同一个 IP。只需确保ServerName
正确配置 Apache 配置中的 vhosts 指令即可。
答案2
最简单的方法是将名称添加ir_multi_agent
到/etc/hosts
文件中。为此,请使用sudo vi /etc/hosts
或编辑该文件sudo nano /etc/hosts
并添加以下行
192.168.43.191 ir_multi_agent
从那时起,您将能够浏览http://ir_multi_agent:8080/IRMultiAgent
和访问您的应用程序。
要删除:8080
该 URL 中的 ,您有两个选择:
- 通过编辑文件中的端口号,在默认 http 端口 (80) 上运行 Tomcat
conf/server.xml
。请注意,这要求您以 root 身份运行 Tomcat。 - 在 Tomcat 服务器前面使用反向代理,这需要安装和配置 http 服务器,例如阿帕奇2或者nginx。
现在,您的 URL 已变为http://ir_multi_agent/IRMultiAgent
。要删除IRMultiAgent
上下文根,您同样有两个选择:
- 将应用程序部署为
ROOT
Tomcat 上的 Web 应用程序。也就是说,将其放在文件夹中webapps/ROOT
。 - 在反向代理上使用重写规则。
就这样,您就有了自己的 Web 应用程序http://ir_multi_agent/
。
在开始这一切之前,请考虑莎士比亚的智慧。URL 不过是一个名称。