Tomcat服务部署与Nginx负载均衡配置

一、中间键产品介绍

   目前来说IBM的WebSphere,Oracle的Weblogic占据了市场上java语言Web站点的部分份额,该两种软件都是商业化的软件,由于性能优越,可靠性高等优点应用于大型互联网公司的Web场景中。

   Tomcat自5.x版本以来,其性能上已经得到了大幅度的提升,开放性的架构和二次开发等特性,可以完全用在访问量不是很大的生产环境下,目前大多数用于JSP技术开发的电子商务网站基本上都应用了Tomcat。

中间键(提供JSP服务的软件)产品:

  • RedHat  JBoss
  • Oracle   Tuxedo
  • Oracle   Weblogic
  • caucho Resin
  • IBM  WebSphere
  • JSP  Tomcat

页面:

  • html   Apache
  • php  LAMP  LNMP
  • jsp   Tomcat

二、Tomcat软件简介

   Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他将其变为开源项目,并由Sun贡献给Apache软件基金会。

三、Tomcat应用场景

 Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,应用在中小型系统和并发访问用户不是很多的场合,是开发和调试JSP页面的首选,Tomcat也可处理静态的HTML页面但是能力不及Apache或Nginx,所以Tomcat通常作为一个servlet和JSP容器,单独运行在后端。

四、JDK软件简介

 

   在安装Tomcat之前必须先安装JDK,JDK全称是Java Development Kit,是SUN公司免费提供的java语言的软件开发工具包,其中包含Java虚拟机(JVM),编写好的java源程序经过编译可生产java字节码,只要安装了JDK,就可以利用JVM解释这些字节码文件,从而保证了Java的跨平台性。

在平台兼容性方面,JDK作为解释字节码文件并根据此调用操作系统的API实现对应功能的java虚拟机,与操作系统位数密切相关,因此存在不同类型的版本,Tomcat也具有上述特征,CentOS7系统中默认已经安装了JDK

JDK中的Java组件:

  • javac:编译器,将后缀名为.java的源代码编译成后缀名为“.class”的字节码

  • java:运行工具,运行.class的字节码
  • jar:打包工具,将相关的类文件打包成一个文件
  • javadoc:文档生成器,从源码注释中提取文档,注释需匹配规范
  • jdb debugger:调试工具
  • jps:显示当前java程序运行的进程状态
  • javap:反编译程序
  • appletviewer:运行和调试applet程序的工具,不需要使用浏览器
  • javah:从Java类生成C头文件和C源文件。这些文件提供了连接胶合,使Java和C代码可进行交互。
  • javaws:运行JNLP程序
  • extcheck:一个检测jar包冲突的工具
  • apt:注释处理工具
  • jhat:java堆分析工具
  • jstack:栈跟踪程序
  • jstat:JVM检测统计工具
  • jstatd:jstat守护进程
  • jinfo:获取正在运行或崩溃的java程序配置信息
  • jmap:获取java进程内存映射信息
  • idlj:IDL-to-Java编译器。将IDL语言转化为java文件
  • policytool:一个GUI的策略文件创建和管理工具
  • jrunscript:命令行脚本运行

五、安装Tomcat(主机192.168.200.112)

1、关闭防火墙和安全机制

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0

2、查看JDK是否安装

[root@localhost ~]# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

3、卸载用rpm方式安装的JDK

方法一

[root@localhost ~]# rpm -qa | grep -i openjdk
java-1.8.0-openjdk-headless-1.8.0.222.b10-0.el7_6.x86_64
java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64

[root@localhost ~]# rpm -e java-1.8.0-openjdk --nodeps   //有依赖关系,解除依赖关系后面加 --nodeps
[root@localhost ~]# rpm -e java-1.8.0-openjdk-headless
[root@localhost ~]# rpm -qa | grep -i openjdk

方法二

[root@localhost ~]# which java
/usr/bin/java

[root@localhost ~]# rm -rf /usr/bin/java

[root@localhost ~]# java -version
-bash: /usr/bin/java: 没有那个文件或目录

4、安装JDK

[root@localhost ~]# tar -xf jdk-8u191-linux-x64.tar.gz

[root@localhost ~]# mv jdk1.8.0_191/ /usr/local/java  //将解压后的包移动到指定目录下

[root@localhost ~]# /usr/local/java/bin/java -version  //此时只有通过绝对路径才可以查看java的版本号信息

[root@localhost ~]# vim /etc/profile  //修改

export JAVA_HOME=/usr/local/java  //设置java的根目录

export PATH=$PATH:$JAVA_HOME/bin  //在PATH环境变量中添加java根目录下的bin子目录

[root@localhost ~]# echo $PATH  //在未执行修改的脚本时查看PATH变量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin  
[root@localhost ~]# source /etc/profile  //重置一下脚本
[root@localhost ~]# echo $PATH  //再查一遍
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin

5、Tomcat安装

[root@localhost ~]# tar -xf apache-tomcat-8.5.16.tar.gz

[root@localhost ~]# mv apache-tomcat-8.5.16 /usr/local/tomcat8

[root@localhost ~]# ls /usr/local/tomcat8/bin
bootstrap.jar setclasspath.sh
catalina.bat shutdown.bat
catalina.sh shutdown.sh
catalina-tasks.xml startup.bat
commons-daemon.jar startup.sh (启动文件)
commons-daemon-native.tar.gz tomcat-juli.jar
configtest.bat tomcat-native.tar.gz
configtest.sh tool-wrapper.bat
daemon.sh tool-wrapper.sh
digest.bat version.bat
digest.sh version.sh
setclasspath.bat

//.bat  Windows版本

//.sh   Linus版本

6、启动

[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh 
Using CATALINA_BASE: /usr/local/tomcat8
Using CATALINA_HOME: /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.

[root@localhost ~]# netstat -anpt | grep :8080
tcp6 0 0 :::8080 :::* LISTEN 3226/java

7、测试

 

 六、设置Tomcat网页存放位置(主机192.168.200.112)

[root@localhost ~]# mkdir -p /web/webapp/     //创建存放网页的目录
[root@localhost ~]# vim /web/webapp/index.jsp   //添加要存放的网页
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
        <head>
                <title>JSP test2 page</title>
        </head>
        <body>
                <% out.println("Welcome to test site,http://www.test2.com");%>
        </body>
</html>

[root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context docBase="/web/webapp" path="" reloadable="flash"></Context>

注释:docBase="/web/webapp"     //web应用的文档基准目录         
         path=" "                         //设置默认"类"
         reloadable="flase"       //设置监视"类"是否变化 

[root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh     //关一下机
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh   //重新开
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.

 测试


 七、nginx负载均衡配置(主机192.168.200.111)

确保安装了nginx,80端口已经打开,直接修改配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
upstream tomcat_server {
                server 192.168.200.112:8080 weight=1;
        }

     server {
        listen       80;
        server_name  localhost;
        location / {
                rewrite ^(.*)$ https://$host$1 permanent;
        }
        location ~ \.jsp$ {
                proxy_pass http://tomcat_server;
        }

        charset utf-8;

[root@localhost ~]# nginx -t 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@localhost ~]# nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

[root@localhost ~]# nginx -s reload

测试

posted @ 2019-09-17 20:13  会飞的fish  阅读(475)  评论(0编辑  收藏  举报