六tomcat

​​​​​​

Java Web环境搭建

1. 初识Tomcat

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Tomcat 是 Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行 Tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。

  • Tomcat端口:关闭端口 8005 启动监听端口 8080
  • Tomcat:采用了同步阻塞的模式
  • 配置文件: /usr/local/tomcat/conf/server.xml
  • 网页打包目录:/usr/local/tomcat/webapps/
  • 网页目录:/usr/local/tomcat/webapps/ROOT/WEB-INF/
  • JDK 是解析器 用来解析并执行其中的JSP脚本

2. Java Web环境:Nginx+JDK+Tomcat+MySQL

3. 环境部署流程

1. 安装JDK(Java解析器)
  1. 首先安装gcc

    bash 复制代码
    # yum -y install gcc
  2. 将软件包上传、解压、并移至指定位置

    bash 复制代码
    cp -r /root/tomcat/jdk1.7.0_25/ /usr/local/jdk/
  3. 查看java是否安装成功

    bash 复制代码
    # java -version
      env | grep tomcat
      env | grep jdk
      echo $PATH
2. 安装Tomcat
  1. 将软件包上传、解压、并复制到指定目录下

    bash 复制代码
    # cp -a 解压目录 /usr/local/tomcat
    cp -r /root/tomcat/apache-tomcat-7.0.42 /usr/local/tomcat/  
  2. 配置 JDK和Tomcat 的环境变量

    • JDK和Tomcat不是通过编译或二进制包安装,因此没有环境变量来提供安装过程中生成的相关文件路径。设置环境变量是为了让命令在执行时能够通过查找环境变量找到相应的文件,从而使得在Linux环境下可以无需安装即可直接执行相关命令
    bash 复制代码
     # vim /etc/profile
    # 添加以下内容

export JAVA_HOME=/usr/local/jdk

export TOMCAT_HOME=/usr/local/tomcat

export JAVA_BIN=/usr/local/jdk/bin

export PATH= P A T H : PATH: PATH:JAVA_HOME/bin: T O M C A T H O M E / b i n e x p o r t C L A S S P A T H = TOMCAT_HOME/bin export CLASSPATH= TOMCATHOME/binexportCLASSPATH=JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

source /etc/profile

3. **将Tomcat的启动脚本赋予执行权限**

```bash
# chmod +x /usr/local/tomcat/bin/*
  1. 开启Tomcat

    bash 复制代码
    /usr/local/tomcat/bin/catalina.sh start
    netstat -antp # 查看端口,确认是否启动
  2. 在客户端访问页面进行测试 192.168.10.20:8080

3. 安装MySQL数据库
  1. 安装依赖包ncurses-devel

    bash 复制代码
    # yum -y install ncurses-devel gcc
  2. 将MySQL文件进行传输到192.168.20.10上进行安装

    bash 复制代码
    # useradd -r -s /sbin/nologin mysql
    # ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312
    # make
    # make install
  3. 生成配置文件

    bash 复制代码
    # cp -a support-files/my-medium.cnf /etc/my.cnf
    # ln -s /usr/local/mysql/bin/* /usr/local/bin/
    # ln -s /usr/local/mysql/sbin/* /usr/local/sbin/
  4. 初始化数据库,生成授权表

    bash 复制代码
    # cd /usr/local/mysql
    # ./bin/mysql_install_db --user=mysql
  5. 生成启动管理脚本,启动MySQL并设置开机自启

    bash 复制代码
    # cd ~/mysql-5.1.55/support-files
    # cp -a mysql.server /etc/init.d/mysqld
    # chmod +x /etc/init.d/mysqld
    # chkconfig --add mysqld
    # chkconfig mysqld on
    # service mysqld start|stop|restart
  6. 为数据库的管理用户root设置登录密码

    bash 复制代码
    # mysqladmin -uroot password 123456
  7. 登录数据库,查看是否安装正确

4. 安装Nginx
  1. 解压Nginx

    bash 复制代码
    tar -xf nginx-1.27.6.tar.gz
  2. 安装Nginx依赖包

    bash 复制代码
    yum -y install pcre-devel zlib-devel gcc
  3. 添加用户

    bash 复制代码
    useradd -r -s /sbin/nologin nginx
  4. 编译并安装

    bash 复制代码
        ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx/
     make
     make install
     
  5. 修改Nginx配置文件

    bash 复制代码
    vim /usr/local/nginx/conf/nginx.conf
    user nginx;
    upstream tomcat { # 添加负载调度(为了后期扩展更多Tomcat服务器方便)
      server 192.168.10.20:8080;
    }
    location / { # 添加反向代理
      proxy_pass http://tomcat;
    }
  6. 重启服务

    bash 复制代码
    /usr/local/nginx/conf/nginx -t
    /usr/local/nginx/sbin/nginx -s reload
  7. 在客户端进行测试,输入Nginx地址,打开的为Tomcat部署的网站

4. 部署JAVA的WAR包
  1. /usr/local/tomcat/conf/server.xml 配置文件中的 server 区域中添加内容

    xml 复制代码
    vim /usr/local/tomcat/conf/server.xml
    
    <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
      <Context path="" docBase="xbz.war" debug="0" privileged="true"/>
    </Host>
  2. 将war包拷贝到webapps目录中

    bash 复制代码

cp -r /root/tomcat/xbz.war /usr/local/tomcat/webapps/

3. **删除网站的ROOT目录**

```bash
cd /usr/local/tomcat/webapps/
rm -rf *
  1. 重启Tomcat服务

    bash 复制代码
    /usr/local/tomcat/bin/catalina.sh stop
    /usr/local/tomcat/bin/catalina.sh start
  2. 测试

    使用客户端浏览访问Nginx服务的端口

    注意:原本的 Tomcat 使用8080端口进行访问,也可以将端口修改为80使用IP直接访问,修改 /usr/local/tomcat/conf/server.xml 配置中的8080 改变为 80(切记不要和其他web服务器冲突)

5. 创建多个Tomcat实例(拓展)
  1. 首先将Tomcat进行停止

    bash 复制代码
    /usr/local/tomcat/bin/catalina.sh stop
  2. 拷贝原来的Tomcat到另外一个目录,如tomcat-2,清除logs目录

    bash 复制代码
    cd /usr/local/
    cp -r tomcat tomcat2
    rm -rf tomcat2/logs/*
  3. 修改Tomcat-2中的 /conf/server.xml 文件,把shutdown和Connector端口修改成另外的数值,关闭端口修改为 8006,连接端口修改为8090

    xml 复制代码
    vim /usr/local/tomcat2/conf/server.xml
    
    <Server port="8006" shutdown="SHUTDOWN">
      <Connector port="8090" protocol="HTTP/1.1"
                 connectionTimeout="20000"
                 redirectPort="8443"/>
    </Server>
  4. 修改startup.sh和shutdown.sh文件

shell 复制代码
   vim /usr/local/tomcat/bin/startup.sh
  vim /usr/local/tomcat/bin/shutdown.sh 
 在第一行均加入 export CATALINA_HOME=/usr/local/tomcat2
  1. 启动Tomcat

    bash 复制代码
    /usr/local/tomcat/bin/catalina.sh start
    /usr/local/tomcat2/bin/catalina.sh start
    # netstat -antp # 查看8080和8090端口是否正常启动
  2. 查看结果

    浏览 http://192.168.10.20:8080http://192.168.10.20:8090

    可以直接将8090写入配置好的Nginx负载均衡中

课外扩展

  1. 遇到问题时,首先要明确需要检查的对象,包括文件、数据库内容以及日志等,进而采取有效的排查方法。解决问题的能力和速度是运维人员的核心价值所在
  2. 例子:如何正确进行邮件服务连接数据库的错误排查?
    在排查邮件服务连接数据库失败的问题时,需要按照从源端到目标端的顺序进行检查。首先,确认配置文件中是否有数据库相关的信息,如数据库驱动、IP地址、账号密码等是否填写正确。其次,手动使用MySQL命令测试导入的账号密码是否能成功连接数据库。最后,检查数据库内部,包括导入的SQL文件是否成功、数据库是否存在、表是否存在以及用户信息是否准确无误。通过这些步骤,可以系统地定位并解决连接数据库失败的问题。
  3. 链路级负载是更加底层的负载方式,它不涉及匹配,仅通过链路接口来分配数据包。
  4. 环境变量在系统中非常重要,它们根据用户登录或对应shell环境的不同,让同一个变量具备不同的值。
  5. C、C++、C#、Java是 编译型编程语言(如Shell、Python)是解释型语言。解释型语言只需解析器就能执行,而编译型编程语言则需要编译器将代码编译成二进制后才能运行。LAMP环境等部署的服务器主要适配解释型语言
复制代码
相关推荐
Theodore_10224 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
冰帝海岸5 小时前
01-spring security认证笔记
java·笔记·spring
世间万物皆对象5 小时前
Spring Boot核心概念:日志管理
java·spring boot·单元测试
没书读了6 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
小二·6 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic6 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
懒洋洋大魔王6 小时前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康6 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神7 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
qq_327342737 小时前
Java实现离线身份证号码OCR识别
java·开发语言