D20-JSP之部署tomcat-阿里云开发者社区

开发者社区> 科技小能手> 正文

D20-JSP之部署tomcat

简介:
+关注继续查看

D20-JSP之部署tomcat

                                                         第一节  部署tomcat 

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的既能在Linux下运行,也能在其他操作系统上运行

Servlet 是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。servlet的工作模
客户端发送请求至服务器
服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器
服务器将响应返回客户端

Tomcat 是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是7.0。Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。


1 准备java 环境
1.1 下载合适的jdk 
//64位Linux 系统使用的 RPM包 ,http://www.oracle.com/technetwork/java/javase/downloads/index.html

1.2 安装jdk


  1. rpm -ivh jdk-7-linux-x64.rpm  

 
1.3 配置java环境变量


  1. //在profile文件中加入如下信息:
  2. vim /etc/profile 

#add for tomcat
export JAVA_HOME=/usr/java/jdk1.7.0 
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/ 
export PATH=$PATH:$JAVA_HOME/bin 
source /etc/profile

1.4 验证java


  1. java -version  

java version "1.7.0" 
Java(TM) SE Runtime Environment (build 1.7.0-b147) 
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)


  1. ls /usr/java/  

default  jdk1.7.0  latest 


2 tomcat 
2.1 下载


  1. wget -c http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.29/bin/apache-tomcat-7.0.29.tar.gz 
  2. wget -c http://www.apache.org/dist/tomcat/tomcat-7/v7.0.29/bin/apache-tomcat-7.0.29.tar.gz.md5 


2.1.2 md5效验


  1. md5sum -c apache-tomcat-7.0.29.tar.gz.md5  

apache-tomcat-7.0.29.tar.gz: OK

2.2 安装(二进制包)


  1. tar zxf apache-tomcat-7.0.29.tar.gz 
  2. mv apache-tomcat-7.0.29 /usr/local/tomcat 


2.3 tomcat 虚拟主机
//共三个虚拟机
localhost
java
center


2.3.1 建立虚拟机目录


  1. mkdir -p /var/www/html/{localhost,java,center} 
  2. mkdir -p /var/log/httpd/{localhost,java,center} 
  3. chown -R www.www /var/www/html 


2.3.2 准备jsp 测试文件


  1. cat > index.jsp << EOF 
  2. <%@page language="java" %> 
  3. <html> 
  4.         <head> 
  5.                 <title>Tomcat</title> 
  6.         </head> 
  7.         <body> 
  8.                 <h2><font color="red">Tomcat</font></h2> 
  9.                 <% out.println("Hello,World!"); %> 
  10.         </body> 
  11. </html> 
  12. EOF 
  13. cp index.jsp /var/www/html/center
  14. cp index.jsp /var/www/html/java
  15. echo "ok"  > /var/www/html/localhost/index.html

//index.html 是为haproxy check 准备,可参考下面haproxy 代理 tomcat 
注意:默认的localhost 在 /usr/local/tomcat/webapps 目录

2.4 tomcat 完整配置文件


  1. sed -re '/<!--/,/-->/d' -e '/^$/d' /usr/local/tomcat/conf/server.xml  

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.JasperListener" />
  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="/var/www/html/localhost"
            unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/var/www/html/localhost" reloadable="true" crossContext="true"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/httpd/localhost"
               prefix="localhost_access_log." suffix=".txt" resolveHosts="false"
               pattern='%h %l %T %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %{X-Forwarded-For}i' />
      </Host>
      <Host name="center.test.com" appBase="/var/www/html/center"
            unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/var/www/html/center" reloadable="true" crossContext="true"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/httpd/center"
               prefix="center_access_log." suffix=".txt" resolveHosts="false"
               pattern='%h %l %T %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %{X-Forwarded-For}i' />
      </Host>
      <Host name="java.test.com" appBase="/var/www/html/java"
            unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/var/www/html/java" reloadable="true" crossContext="true"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/httpd/java"
               prefix="java_access_log." suffix=".txt" resolveHosts="false"
               pattern='%h %l %T %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %{X-Forwarded-For}i' />
      </Host>
    </Engine>
  </Service>
</Server>



3 管理tomcat
3.1 测试server.xml 文件


  1. /usr/local/tomcat/bin/catalina.sh configtest 

Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.7.0
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Aug 30, 2012 10:11:15 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib#
Aug 30, 2012 10:11:16 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Aug 30, 2012 10:11:16 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Aug 30, 2012 10:11:16 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 981 ms

3.2 启动tomcat


  1. /usr/local/tomcat/bin/catalina.sh start 

Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.7.0
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

3.3 tomcat 监听8080端口


  1. lsof -i :8080 

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    21977 root   40u  IPv6 473403      0t0  TCP *:webcache (LISTEN)


4 haproxy 代理 tomcat 
拓扑:
Haproxy  -> Tomcat


4.1 haproxy 代码


  1. acl jsp hdr_reg(host) -i ^(center.test.com|java|jsp) 
  2. use_backend  tomcat.test.com if jsp 
  3. backend tomcat.test.com 
  4.         mode http 
  5.         option  forwardfor 
  6.         balance roundrobin    
  7.         cookie  SERVERID  
  8.         option  httpchk HEAD /index.html 
  9.         server  tomcat01 10.0.100.77:8080 cookie tomcat01 check inter 2000 rise 3 fall 3 weight 3 

 

参考

tomcat
http://baike.baidu.com/view/10166.htm

servlet
baike.baidu.com/view/25169.htm

话说tomcat的前世今生 
http://haicang.blog.51cto.com/2590303/963648

tomcat server.xml 中文版介绍  
http://jvortex.blog.163.com/blog/static/16961890020111253509772/

tomcat部署web服务(一) 
http://wjw7702.blog.51cto.com/5210820/960577

apache tomcat整合后虚拟主机配置
http://lsscto.blog.51cto.com/779396/899306

tomcat 日志配置(Tomcat访问日志浅析)
http://blog.sina.com.cn/s/blog_7acf99ef01013rjt.html

用Haproxy做前端代理时让Apache日志记录客户端IP的修改方法
http://www.ha97.com/4825.html

 

结束
更多请:
linux 相关 37275208
vmware 虚拟化相关  166682360



本文转自 dongnan 51CTO博客,原文链接:http://blog.51cto.com/dngood/1058668

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
25920 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
7238 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2503 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
9501 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
8920 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
10522 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
8120 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
6013 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
20957 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载