Tomcat构建企业级高负载WEB服务器

    科技2024-08-11  29

    前言

    什么是JAVA虚拟机

    所谓虚拟机,就是一台虚拟的计算机。他是一款软件,用来执行一系列虚拟计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。大名鼎鼎的VisualBox、VMware就属于系统虚拟机。他们完全是对物理计算机的仿真。提供了一个可以运行完整操作系统的软件平台。 程序虚拟机的典型代表就是Java虚拟机,它专门为执行单个计算机程序而设计,在Java虚拟机中执行的指令我们称为Java字节码指令。无论是系统虚拟机还是程序虚拟机,在上面运行的软件都呗限制于虚拟机提供的资源中。

    JAVA 如何做到跨平台

    同一个JAVA程序(JAVA字节码的集合),通过JAVA虚拟机(JVM)运行于各大主流操作系统平台比如Windows、CentOS、Ubuntu等。程序以虚拟机为中介,来实现跨平台。 图示

    Tomcat部署

    官网地址

    tomcat下载地址 http://tomcat.apache.org/

    JDK下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html

    部署

    一、Tomcat Http Server

    环境

    5到8G内存

    1. 部署JAVA环境

    提示 建议卸载默认安装openjdk软件

    ①解压安装包

    tar xf jdk-8u151-linux-x64.tar.gz -C /usr/local

    ②多版本部署java

    ln -s /usr/local/jdk1.8.0_151/ /usr/local/java

    3配置环境变量
    vim /etc/profile JAVA_HOME=/usr/local/java PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME PATH source /etc/profile env |grep JAVA JAVA_HOME=/usr/local/java

    4测试java

    2. 安装Tomcat:

    tar xf apache-tomcat-7.0.42.tar.gz -C /usr/local/ ln -s /usr/local/apache-tomcat-7.0.42/ /usr/local/tomcat 定义Tomcat所需环境变量: vim /etc/profile CATALINA_HOME=/usr/local/tomcat //Tomcat安装目录 export CATALINA_HOME

    source /etc/profile

    3.启动Tomcat

    启动tomcat #bash /usr/local/tomcat/bin/startup.sh 输出提示 检查端口 # netstat -tnlp |grep java

    关于tomcat端口: 8005 是tomcat本身的端口 8080 tomcat负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。  8009 tomcat负责和其他的HTTP服务器建立连接。 如nginx和apache互通时使用

    访问 http://192.168.0.104:8080/ 注意服务器地址,注意端口 浏览器访问tomcat主页。注意关闭防火墙 关闭tomcat(切记,否则你会遇见500) #bash /usr/local/tomcat/bin/shutdown.sh

    4.关于tomcat

    [root@web ~]# cd /usr/local/tomcat/ [root@web tomcat]# tree -L 1 . ├── bin #存放tomcat管理脚本 ├── conf # tomcat 配置文件存放目录 ├── lib # web应用调用的jar包存放路径 ├── LICENSE ├── logs # tomcat 日志存放目录,catalina.out 为主要输出日志 ├── NOTICE ├── RELEASE-NOTES ├── RUNNING.txt ├── temp # 存放临时文件 ├── webapps # web程序存放目录 └── work # 存放编译产生的.java 与 .class文件 [root@web03 tomcat]# cd webapps/ [root@web03 webapps]# tree -L 1 . ├── docs # tomcat 帮助文档 ├── examples # web应用示例 ├── host-manager # 主机管理 ├── manager # 管理 └── ROOT # 默认站点根目录

    默认网站的主目录(主页) ls /usr/local/tomcat/webapps/ROOT

    [root@web03 conf]# tree -L 1 . ├── Catalina ├── catalina.policy ├── catalina.properties ├── context.xml ├── logging.properties ├── logs ├── server.xml # tomcat 主配置文件 ├── server.xml.bak ├── server.xml.bak2 ├── tomcat-users.xml # tomcat 管理用户配置文件 ├── tomcat-users.xsd └── web.xml

    仅作了解

    二、安装MySQL

    1.创建数据库: 创建jspgou数据库,字符集为utf-8 yum install -y mariadb-server mariadb 该步骤出错。请您检查YUM源配置 # systemctl start mariadb [root@localhost ~]# mysqladmin -u root password 123 注意如果有密码 mysqladmin -u root -p老密码 password 新密码 [root@localhost ~]# mysql -u root -p123 MariaDB [(none)]> create database jspgou character set = utf8;

    三、部署jspgou(电子商城)

    1.解压源码包

    unzip jspgouV6-ROOT.zip

    2.更改数据库链接:

    提示:在解压缩后的文件中,修改连接数据库的信息 [root@localhost ~]# vim ROOT/WEB-INF/config/jdbc.properties

    jdbc.url=jdbc:mysql://127.0.0.1:3306/jspgou?characterEncoding=UTF-8 jdbc.username=root jdbc.password=123

    3.导入数据:

    [root@localhost ~]# mysql -u root -p123 -D jspgou < DB/jspgou.sql

    使用MYSQL数据库时,会发生的错误 使用mysql作为数据库时,如果导入数据失败 1.修改mysql配置文件 my.cnf中max_allowed_packet参数为64m,默认为1m 2.DB/jspgou.sql里面的默认值改一下 把所有datetime类型的字段默认值改成CURRENT_TIMESTAMP 将程序解压后的ROOT文件夹,拷贝到tomcat安装目录下的webapps文件夹下

    [root@localhost ~]# \cp -r ROOT /usr/local/tomcat/webapps/ 不使用cp 的别名。 alias cp=‘cp -i’

    4.部署网站:

    启动tomcat #bash /usr/local/tomcat/bin/startup.sh 输入以下地址 http://192.168.75.226:8080/jeeadmin/jspgou/index.do 注意服务器地址 用户名:admin 密 码:123456 图示

    点击上图右上角浏览器图标访问网站首页

    Tomcat多实例

    关闭主站

    bash /usr/local/tomcat/bin/shutdown.sh

    准备多实例主目录

    mkdir /usr/local/tomcat/instance{1…3}

    制作实例工作目录

    cp -r /usr/local/tomcat/{conf,logs,temp,work} /usr/local/tomcat/instance1/ # cp -r /usr/local/tomcat/{conf,logs,temp,work} /usr/local/tomcat/instance2/ # cp -r /usr/local/tomcat/{conf,logs,temp,work} /usr/local/tomcat/instance3/ 查看目录结构 [root@www ~]# tree -d -L 2 /usr/local/tomcat/

    修改端口 将web配置文件拷贝三份。分别修改为不同端口

    vim /usr/local/tomcat/instance1/conf/server.xml 服务端口 8080 替换成 8081 修改前 修改后 程序工作端口:8005替换成 8091 修改前 修改后 网站目录:webapps 替换成 另一个目录 修改前 修改后

    其他两个也相应不同修改

    启动脚本 vim /usr/local/tomcat/instance1/ins1.sh

    #!/bin/bash #instance1 . /etc/init.d/functions export CATALINA_BASE="/usr/local/tomcat/instance1" case "$1" in start) $CATALINA_HOME/bin/startup.sh ;; stop) $CATALINA_HOME/bin/shutdown.sh ;; restart) $CATALINA_HOME/bin/shutdown.sh sleep 5 $CATALINA_HOME/bin/startup.sh ;; esac export JAVA_OPTS='-Xms64m -Xmx128m'

    vim /usr/local/tomcat/instance2/ins2.sh

    #!/bin/bash #instance2 ##### . /etc/init.d/functions export CATALINA_BASE="/usr/local/tomcat/instance2" ##### case "$1" in start) $CATALINA_HOME/bin/startup.sh ;; stop) $CATALINA_HOME/bin/shutdown.sh ;; restart) $CATALINA_HOME/bin/shutdown.sh sleep 5 $CATALINA_HOME/bin/startup.sh ;; esac

    vim /usr/local/tomcat/instance3/ins3.sh

    #!/bin/bash #instance3 . /etc/init.d/functions export CATALINA_BASE="/usr/local/tomcat/instance3" case "$1" in start) $CATALINA_HOME/bin/startup.sh ;; stop) $CATALINA_HOME/bin/shutdown.sh ;; restart) $CATALINA_HOME/bin/shutdown.sh sleep 5 $CATALINA_HOME/bin/startup.sh ;; esac export JAVA_OPTS='-Xms64m -Xmx128m'

    赋权

    chmod +x /usr/local/tomcat/instance1/ins1.sh # chmod +x /usr/local/tomcat/instance2/ins2.sh # chmod +x /usr/local/tomcat/instance3/ins3.sh

    网站源码

    mkdir /webapps cp -r /usr/local/tomcat/webapps/ROOT/ /webapps/

    启动

    /usr/local/tomcat/instance1/ins1.sh start # /usr/local/tomcat/instance2/ins2.sh start # /usr/local/tomcat/instance3/ins3.sh start 等5秒

    测试

    netstat -antp | grep 8081

    浏览

    http://192.168.75.226:8081 http://192.168.75.226:8082 http://192.168.75.226:8083

    Processed: 0.012, SQL: 8