在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"镜像将对拥有免费层账户的用户可用。作为免费用户,只能启动一个"微型"实例,它只有非常有限的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-keypair.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。由于已经在Ubuntu实例上安装了VNC服务器,只需要"TightVNC Java Viewer"。解压缩zip文件后,如果本地计算机上有适当的JRE,可以运行"tightvnc-jviewer.jar"文件。

需要登录到VNC服务器的密码是第一次运行"vnc4server"时指定的密码。成功登录到VNC服务器后,应该能够从TightVNC查看器看到"ubuntu-desktop"。如果觉得自己更习惯于shell命令而不是GUI,显然不需要通过TightVNC连接到Ubuntu实例。但如果觉得可以使用GUI来提高生产力,可以设置它。

在GUI客户端的帮助下,可以使用Ubuntu实例上的Firefox从相应的网站下载Java和Tomcat。

可以访问下载Java。使用的版本是"jre-8u65";可以访问下载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中输入"http://localhost:8080",应该看到以下网页。

为Tomcat启用端口80

现在tomcat正在运行,可能会期望可以直接去任何浏览器并输入URL "http://52.35.120.158",应该看到tomcat首页。但网页无法访问。需要运行以下命令将任何TCP请求重定向到端口80到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

最后,需要在"server.xml"中的HTTP连接器配置中包含proxyPort属性,以便Web应用程序中的servlets表现得就像传入的请求被定向到端口80一样。

<Connector port="8080" proxyPort="80" .../>

现在如果打开任何有互联网访问权限的Web浏览器并输入带有Ubuntu实例公共IP的URL,应该看到Tomcat首页。

要点

这是一篇关于在Amazon EC2Ubuntu实例上设置Tomcat的学习笔记;

免费的AWS服务可以作为一个不错的游乐场,让在互联网上测试应用程序,如果没有具有公共IP的服务器;

如果是AWS和Ubuntu的专家,可能会发现方法过于冗长。但记录步骤是很好的,这样如果将来再次这样做,就会更容易;

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485