汽车
tomcat虚拟主机(Tomcat+nginx WEB负载均衡与动静分离案例实战)

Tomcat软件的概念

Tomcat是一款开源的、免费的WEB服务器软件(Apache、Nginx),隶属于Apache基金会旗下的,主要是基于HTTP协议(超文本传输协议)去发布网站代码、提供网页信息服务的,最终用户通过浏览器可以实现网站页面的访问。

Tomcat软件的特点

  • 软件自身是JAVA语言开发的;
  • 可以支持处理动静网页;
  • 支持虚拟主机、发布多个网站;
  • 可以支持多实例(启动多个进程)。

Tomcat WEB软件默认可以处理动静网页,主要是处理JSP动态程序,JSP(Java server page)是Java语言开发的网站页面(服务页面),在企业生产环境中Tomcat处理动态网页的并发请求可以达到5000/s。

  • 静态网页

静态网页一般是跟后端数据库不发生交互的网页,网页内容很少更新或者几乎不更新的,其网页文件后缀命名通常是以.htm、.html、.xml等结尾的。

  • 动态网页

动态网页一般是跟后端数据库发生交互的网页,网页内容经常更新或者随着后端数据库内容变化而更新的,其网页文件后缀命名通常是以.asp、.jsp、.php等结尾的。

JDK、Java、Tomcat三者关系

Java是一门面向对象的编程语言,JDK是Java语言开发的环境、SDK开发工具包、同时JDK是Java程序运行时所需的环境(JRE:JVM虚拟机和Java类、库),JVM虚拟机可以解析Java程序字节码(.classes文件)。而Tomcat是基于Java语言开发的,Tomcat程序运行时需提前配置JDK工具。

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

实验环境

操作系统:OpenEuler

tomcat:192.168.154.177

nginx:192.168.154.179

安装部署

基于OpenEuler系统部署一套Tomcat WEB平台,采用二进制Tar包方式部署,部署方式和指令如下:

安装JDK

yum -y install java-11-openjdk
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

从Apache官网下载Tomcat软件包

wget -c https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.111/bin/apache-tomcat-9.0.111.tar.gz
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

解压apache-tomcat-9.0.111.tar.gz

tar -xzvf apache-tomcat-9.0.111.tar.gz
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

进入apache-tomcat-9.0.111目录

cd apache-tomcat-9.0.111
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

创建Tomcat程序部署目录;

mkdir -p /usr/local/tomcat
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

将解压后的tomcat程序文件拷贝至其部署目录即可;

\cp * -a /usr/local/tomcat/

查看Tomcat程序是否部署成功

ll /usr/local/tomcat/
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

启动Tomcat服务进程;

/usr/local/tomcat/bin/startup.sh
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

查看Tomcat进程;

ps -ef | grep tomcat
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

查看日志文件

ls -l /usr/local/tomcat/logs/catalina.out
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

查看监听端口

netstat -tnlp | grep -aiwE "8005|8080|8009"
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

  • 8005 SHUTDOWN指令关闭服务的端口;
  • 8080 HTTP协议远程访问的端口;
  • 8009 AJP协议访问端口,Apache和Tomcat专属通信端口。

Firewalld防火墙对外开放8080端口;

firewall-cmd --add-port=8080/tcp --permanentsystemctl reload firewalld.service
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

systemctl stop firewalld.service

用户通过浏览器访问Tomcat服务器IP地址+8080端口,即可访问Tomcat默认测试页面

http://192.168.154.177:8080/

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

查看发布目录

cd /usr/local/tomcat/webapps/
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

创建JSP测试代码

在/usr/local/tomcat/webapps/ROOT下创建index.jsp文件,内容如下:

cd /usr/local/tomcat/webapps/cp -r ROOT ROOT.bakrm -rf *vim index.jsp<html>  <body>    <h1>JSP Test Page</h1>    <%=new java.util.Date()%>  </body></html>
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

安装部署多台Tomcat

将tomcat目录更名为tomcat_v1

mv /usr/local/tomcat /usr/local/tomcat_v1
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

将tomcat_v1目录复制为tomcat_v2

cp -r /usr/local/tomcat_v1/ /usr/local/tomcat_v2
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

查看tomcat目录

ls -ld /usr/local/tomcat_*
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

结束之前的java进程

pkill java
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

修改/usr/local/tomcat_v2/conf/server.xml下的端口

将8005改为8006、8080改为8081

vim /usr/local/tomcat_v2/conf/server.xml
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

启动tomcat_v1和tomcat_v2服务程序

/usr/local/tomcat_v1/bin/startup.sh/usr/local/tomcat_v2/bin/startup.sh
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

查看tomcat进程

netstat -tnlp | grep -E "8005|8080|8006|8081"
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

浏览器访问

http://192.168.154.177:8080/和http://192.168.154.177:8081/

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

安装和配置nginx

安装依赖

yum install -y gcc gcc-c++ make pcre-devel zlib-devel openssl-devel
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

下载nginx

wget -c http://nginx.org/download/nginx-1.27.1.tar.gz -P /usr/src/
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

进入/usr/src目录

cd /usr/src/
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

解压nginx-1.27.1.tar.gz

tar -xzvf nginx-1.27.1.tar.gz
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

进入nginx-1.27.1目录

cd nginx-1.27.1
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

预编译

./configure --prefix=/usr/local/nginx/ --user=www --group=www --with-http_stub_status_module
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

编译&&安装

make -j4 && make -j4 install
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

创建www用户

useradd www
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

进入/usr/local/nginx/conf/目录

cd /usr/local/nginx/conf/
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

清除nginx.conf配置文件中的#号行和空行

grep -vE "#|^$" nginx.conf.default >nginx.conf
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

启动nginx进程

/usr/local/nginx/sbin/nginx
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

关闭防火墙

systemctl status firewalldsystemctl stop firewalldsystemctl disable firewalld
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

浏览器访问

http://192.168.154.179/

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

负载均衡:配置nginx跳转到tomcat实现

修改nginx配置文件

vim /usr/local/nginx/conf/nginx.conf #添加红框部分内容
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

重启nginx服务

/usr/local/nginx/sbin/nginx -t/usr/local/nginx/sbin/nginx -s reload
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

浏览器访问依次刷新

由下图可看到每次刷新后的结果都不一样,说明访问的tomcat不同

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

动静分离

编辑/usr/local/nginx/conf/nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf #添加红框部分内容
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

重启nginx服务

/usr/local/nginx/sbin/nginx -s reload

论坛部署

上传jforum-2.5.0.war文件

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

拷贝jforum-2.5.0.war到/usr/local/tomcat_v1/webapps/下

cp jforum-2.5.0.war /usr/local/tomcat_v1/webapps/
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

安装mysql数据库

yum -y install mysql mysql-server
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

开机启动MYSQL服务&启动MYSQL服务;

systemctl enable mysqld.servicesystemctl restart mysqld.service
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

查看mysql进程

ps -ef | grep mysql
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

进入mysql数据库

mysql
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

设置mysql密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'aaaAAA111.';
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

刷新权限

flush privileges;
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

创建数据库jforum

create database jforum;
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

浏览器访问

http://192.168.154.177:8080/jforum-2.5.0/install.jsp

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

下一步

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

开始安装

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

更改加密规则

mysql8.0之前的版本中加密规则是mysql_native_password, 而在mysql8之后,加密规则是caching_sha2_password

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'aaaAAA111.';

刷新权限

flush privileges;

重新刷新浏览器

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

下一步开始安装

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

部署第二台论坛:

将tomcat_v1/webapps目录下的jforum拷贝到tomcat_v2/webapps目录下实现两台论坛

cp -r /usr/local/tomcat_v1/webapps/jforum-2.5.0 /usr/local/tomcat_v2/webapps/
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

浏览器访问

http://192.168.154.177:8081/jforum-2.5.0/forums/list.page

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

通过nginx访问

远程拷贝

将/usr/local/tomcat_v1/webapps/jforum-2.5.0远程拷贝到192.168.154.179服务器下的/usr/local/nginx/html

scp -r /usr/local/tomcat_v1/webapps/jforum-2.5.0 root@192.168.154.179:/usr/local/nginx/html
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

进入/usr/local/nginx/html/目录

cd /usr/local/nginx/html/
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

设置目录权限

chown -R www:www jforum-2.5.0/

编辑/usr/local/nginx/conf/nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf #添加红框部分内容做网页规则跳转
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

重启nginx服务

/usr/local/nginx/sbin/nginx -s reload
Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">

浏览器访问

http://192.168.154.179

Tomcat+nginx WEB负载均衡与动静分离案例实战nerror="javascript:errorimg.call(this);">


顶一下()     踩一下()

热门推荐

发表评论
0评