亚马逊ec2网站推出

时间:2013-12-25 07:02:03

标签: tomcat amazon-web-services amazon-ec2 webserver

我已经在我的个人系统上使用apache tomcat服务器来开发一个网站。但是我需要在亚马逊ec2实例上部署网站。我需要一个稳定的替代apace tomcat。请为我推荐一些选项和链接。此外,在部署我的个人网站时,我必须采取哪种安全措施来确保数据的完整性不受损害。

1 个答案:

答案 0 :(得分:1)

EC2设置

  1. 使用亚马逊的ami-84db39ed(fedora-8-i386-v1.14-std)AMI启动EC2实例。这似乎是一个基本的Fedora 8图像。

  2. 使用如下命令ssh进入实例:

    ssh -i <path to your .pem file> root@<public DNS address for your instance>
    
  3. 除非另有说明,否则所有后续命令行都在实例中执行。

    安装Java

    http://download.java.net/jdk6/下载JDK RPM。在“Linux平台”下查找“自解压JDK文件中的Linux RPM”。我下载了jdk-6u20-ea-bin-b02-linux-i586-01_apr_2010-rpm.bin,通过复制链接地址然后运行curl:

    curl http://www.java.net/download/jdk6/6u20/promoted/b02/binaries/jdk-6u20-ea-bin-b02-linux-i586-01_apr_2010-rpm.bin
    

    安装Tomcat

    我在/ env / tomcat下安装了它,除了亚马逊Eclipse插件使用的亚马逊EMI之外没有任何理由。

    mkdir /env
    mkdir /env/tomcat
    cd /env/tomcat
    curl http://apache.mirrors.hoobly.com/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat- 6.0.26.tar.gz > apache-tomcat-6.0.26.tar.gz
    tar zxvf apache-tomcat-6.0.26.tar.gz
    cd apache-tomcat-6.0.26
    bin/startup.sh  # this launches Tomcat
    

    要验证安装,请从Web浏览器加载根页:http://mypublicdns.com:8080

    (替换您实例的公共DNS地址,如EC2信息中心所示。)

    将Tomcat配置为自动启动

    使用以下内容创建文件“/etc/rc.d/init.d/tomcat”:

    #!/bin/sh
    # Tomcat init script for Linux.
    #
    # chkconfig: 2345 96 14
    # description: The Apache Tomcat servlet/JSP container.
    
    JAVA_HOME=/usr/java/jdk1.6.0_20
    CATALINA_HOME=/env/tomcat/apache-tomcat-6.0.26
    export JAVA_HOME CATALINA_HOME
    
    exec $CATALINA_HOME/bin/catalina.sh $*
    

    您可能需要调整JAVA_HOME和/或CATALINA_HOME,具体取决于您安装的Java SDK和Tomcat的确切版本。接下来,执行这些命令为init脚本设置适当的权限,并启用Tomcat进行自动启动:

    chmod 755 /etc/rc.d/init.d/tomcat
    chkconfig --level 2345 tomcat on
    

    现在,只要服务器重新启动,就应该自动启动Tomcat。

    安装您的应用

    现在,我们将安装我们的Web应用程序并稍微调整Tomcat配置。首先,使用“vi conf / server.xml”编辑server.xml文件。查找端口8080的连接器:

       <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    

    并将端口从8080更改为80,以便可以在普通HTTP端口上访问您的Web服务器。接下来,找到Host标签(靠近文件末尾):

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
    

    将autoDeploy更改为“false”。 (这是O'Reilly的Tomcat:The Definitive Guide,第2版推荐的。我没有完全按照他们的推理,它与在服务器启动时安装两次的应用程序有关,一次是通过autoDeploy安装的,一次是通过不同的机制安装的。 )最后,在标记内,为您的应用程序添加标记。我看起来像这样:

      <Context docBase="CloudMetricsEC2.war" path="" />
    

    现在您可以关闭server.xml。接下来,您需要为您的应用程序构建一个WAR文件 - 在Eclipse中,您可以通过右键单击Package Explorer中的项目,选择“Expore ...”,然后选择“Web - &gt; WAR file”来完成此操作。导出格式列表。使用如下命令将其复制到实例(在本地计算机上,而不是EC2实例):

     scp -i ~/.ec2/Tomcat2.pem CloudMetricsEC2.war
     root@INSTANCE_PUBLIC_DNS_NAME:/env/tomcat/apache-tomcat-6.0.26/webapps/CloudMetricsEC2.war
    

    接下来,删除默认的ROOT应用程序,或者至少将其移开:

     mv webapps/ROOT webapps/xROOT
    

    最后,重启Tomcat以获取所有更改:

     bin/shutdown.sh; bin/startup.sh