在 Amazon EC2 Ubuntu 实例上设置 Tomcat
这是关于在 Amazon EC2 Ubuntu 实例上设置 Tomcat 的学习笔记。
引言
这是关于在 Amazon EC2 Ubuntu 实例上设置 Tomcat 的学习笔记。
背景
这是关于在 Amazon EC2 Ubuntu 实例上设置 Tomcat 的学习笔记。在 Amazon EC2 Ubuntu 实例上设置 Tomcat 应该是一项简单的任务,但有几个步骤并不那么明显。在这篇学习笔记中,我想记录下这些关键步骤,以便下次需要时能更轻松地完成,节省一些时间。
创建 Amazon AWS 账户
创建 Amazon AWS 账户是一个简单的步骤。您可以访问 Amazon 网页 完成注册。Amazon 提供不同级别的服务。就我而言,我创建了一个为期一年的免费账户。Amazon 需要您的电子邮件地址、信用卡和电话号码来完成注册。他们承诺,只要您不超出使用配额,就不会向您收费。按照 Amazon 的说明创建账户应该不难。但我想提醒您,如果您的使用并非用于任何商业目的,请不要超出免费配额。否则您将被收费。
启动 Ubuntu 实例
完成注册后,您可以从 Amazon AWS 链接 登录 AWS 管理控制台。由于 AWS 管理控制台的 UI 可能会随着时间不断变化,我不想详细介绍启动过程。我只想记录下重要的步骤。当您开始启动 AWS 实例时,Amazon 会提供许多机器映像供您选择。“Ubuntu Server”映像将提供给拥有免费套餐账户的用户。作为免费用户,您只能启动“micro”实例,该实例只有非常有限的 CPU 和内存。但这对于测试您的应用程序应该足够了。启动实例时,您应该牢记以下几点:
- 密钥对 - 这是一个加密密钥对。当您从本地计算机访问 Ubuntu 实例时,它将用于此。如果您还没有密钥对,Amazon 会提供为您创建一个。您需要下载此密钥对并将其保存在本地计算机上。密钥对文件具有“pem”扩展名;
- 安全组 - 它是一组规则,用于控制实例如何被外部世界访问。在启动过程中,Amazon 可能不会要求您指定安全组。它会为您创建一个默认的安全组。默认情况下,此安全组将打开 22 端口以进行 SSH 连接。您还可以选择配置此安全组,以指定此 Ubuntu 实例向外部世界开放的其他网络协议和 IP 端口;
- 默认情况下,Ubuntu 实例将有一个名为“ubuntu”的用户。您将使用此用户来访问 Ubuntu 实例。
成功启动 Ubuntu 实例后,Amazon 网页将显示有关此实例的重要信息,例如公共 IP、安全组和密钥对。
通过 SSH 访问实例
您的本地计算机(运行任何操作系统)都可以访问 Ubuntu 实例。由于我使用的是 Linux mint,我将使用 Linux 机器通过 SSH 访问 Ubuntu 实例。如果您的计算机上没有安装 SSH,则需要自行安装。在运行 SSH 之前,您需要通过发出以下命令确保您的密钥对文件只能由您本人访问
chmod 400 song-aws-keypair.pem
文件“song-aws-paypair.pem”是我计算机上的密钥对文件。更改密钥对文件属性后,您可以通过以下命令连接到您的 Ubuntu 实例
ssh -i "$HOME/Development/amazon-aws/keys/song-aws-keypair.pem" ubuntu@52.35.120.158
您需要确保密钥对文件的路径和 Ubuntu 实例的公共 IP 地址正确。
SSH 将为您提供一个 Ubuntu 实例的终端,您可以在其中向 Amazon 云中的 Ubuntu 实例发出任何 shell 命令。
通过 TightVNC 访问实例
SSH 使您可以通过 shell 命令管理您的 Ubuntu 实例。但并非所有人都将 shell 命令作为使用 Linux 的主要方式。对于许多用户来说,使用 GUI 客户端连接到 Ubuntu 实例仍然很方便。这里显示的方法是从这个 Youtube 视频 借用的。要启用从 Ubuntu 实例对 TightVNC 的支持,您需要通过 SSH 连接到实例。然后,您可以发出以下命令来安装“ubuntu-desktop”。
sudo apt-get install ubuntu-desktop
您可能需要在安装前运行更新,以使安装成功。
sudo apt-get update
您还需要安装“vnc4server”和“gnome-panel”。
sudo apt-get install vnc4server
sudo apt-get install gnome-panel
安装完成后,您可以通过以下命令运行“vnc4server”
vnc4server
当您第一次运行“vnc4server”时,它会要求您设置密码。这是 GUI 客户端用于访问服务器的密码。在您能够从本地计算机上的 GUI 客户端访问 Ubuntu 实例之前,您需要进一步配置服务器。您需要使用以下命令关闭服务器
vncserver -kill :1
然后,您可以修改“.vnc/xstartup”文件,使其如下所示,并保存文件。
然后,您可以通过以下命令重新启动 vnc 服务器,以便 VNC 客户端可以连接到 Ubuntu 实例
vnc4server
您还需要使用 Amazon AWS 管理控制台更改安全组,以接受端口 5901,以便 GUI 客户端连接到 VNC 服务器。
现在 Unbuntu 实例已准备好进行连接。作为我的第一个 VNC 客户端,我选择了 TightVNC。您可以访问下载页面下载 TightVNC。由于我已经安装了 VNC 服务器在我的 Ubuntu 实例上,我只需要“TightVNC Java Viewer”。解压 zip 文件后,如果您在本地计算机上安装了合适的 JRE,就可以运行“tightvnc-jviewer.jar”文件。
您需要输入的用于登录 VNC 服务器的密码是您在第一次运行“vnc4server”时设置的密码。成功登录 VNC 服务器后,您应该可以通过 TightVNC 查看器看到“ubuntu-desktop”。
如果您觉得您比 GUI 更习惯使用 shell 命令,那么显然您不需要通过 TightVNC 连接到您的 Ubuntu 实例。但如果您觉得 GUI 可以帮助您提高工作效率,那么您可以进行设置。
下载 Java 和 Tomcat
借助 GUI 客户端的帮助,您可以使用 Ubuntu 实例上的 Firefox 从相应的网站下载 Java 和 Tomcat。
- 您可以访问 http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载 Java。我使用的版本是“jre-8u65”;
- 您可以访问 https://tomcat.net.cn/download-70.cgi 下载 tomcat。我使用的版本是“7.0.67”。
下载 Java 和 Tomcat 后,您可以将它们解压到您选择的目录。
为了让 Linux 终端能够找到正确的 JRE 和“catalina.sh”,您可以将以下行添加到“ubuntu”用户的“.profile”文件中。您需要输入正确的文件路径。
export JAVA_HOME=$HOME/Installation/jdk1.8.9_65 PATH=$HOME/Installation/apache-tomcat-7.0.67/bin:PATH
在重新启动 Ubuntu 实例或发出命令“source $HOME/.profile”后,您可以通过以下命令启动 tomcat
catalina.sh start
您可以通过以下方式停止 tomcat
catalina.sh stop
如果您的 tomcat 已启动,您可以打开 Ubuntu 实例上的 Firefox,然后输入 URL“https://:8080”,您应该会看到以下网页。
启用 Tomcat 的 80 端口
现在您的 tomcat 正在运行,您应该期望可以直接在任何浏览器中输入 URL“http://52.35.120.158”,您应该会看到 tomcat 主页。但该网页是无法访问的。您需要运行以下命令将所有 TCP 请求重定向到 8080。
sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
要保存“iptables”,您需要安装“iptables-persistent”。
sudo apt-get install iptables-persistent
然后,您可以通过以下命令保存“iptables”
sudo /etc/init.d/iptables-persistent save
最后,您需要 Web 应用程序中的 servlets 像传入请求被定向到 80 端口一样进行处理,方法是在“server.xml”的 HTTP 连接器配置中包含“proxyPort”属性。
<Connector port="8080" proxyPort="80" .../>
现在,如果您打开任何可以访问 Internet 的 Web 浏览器,并在 URL 中输入 Ubuntu 实例的公共 IP 地址,您应该会看到 Tomcat 主页。
关注点
- 这是关于在 Amazon EC2 Ubuntu 实例上设置 Tomcat 的学习笔记;
- 如果您没有具有公共 IP 的服务器,免费的 AWS 服务可以作为测试您在 Internet 上的应用程序的绝佳练习场;
- 如果您是 AWS 和 Ubuntu 方面的专家,您可能会觉得我的方法过于冗长。但记录下这些步骤还是很有用的,这样以后再做时会更容易;
- 我希望您喜欢我的帖子,并希望这篇学习笔记能以某种方式帮助到您。
历史
首次修订 - 2015 年 12 月 14 日。