目录

一、环境准备

二、tomcat1和tomcat2服务器,安装配置tomcat

1.tomcat服务器介绍

2.JDK软件介绍

3.查看JDK是否安装

4.tomcat1和tomcat2服务器,安装JDK1.8.0_191(JDK必须和nginx版本相适应,不然一直报错)

5.安装并启动apache-tomcat-8.5.16

 6.关闭tomcat

7.tomcat配置目录及文件说明

三、自定义默认网站目录

1、首先在跟目录下建立一个web目录,并在里面建立一个webapp目录,用于存放网站文件

2、在webapp目录下建立一个index.jsp的测试页面

3、修改Tomcat的server.xml文件

四、nginx+tomcat负载均衡集群(cluster)

1.正向代理和反向代理

2.nginx服务器配置(192.168.1.12)

3.配置nginx.conf

4.测试轮询 

 5.Nginx负载均衡算法

五、tomcat数据库连接

1.下载模拟项目

 2.在192.168.1.135(mysql)上安装mysql

 六、部署开源站点jpress

1.配置数据库

2.jpress站点上线


一、环境准备

准备3台服务器

192.168.1.12(nginx)

192.168.1.133(tomcat1)

192.168.1.134(tomcat2)

关闭防火墙

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

二、tomcat1和tomcat2服务器,安装配置tomcat

1.tomcat服务器介绍

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

2.JDK软件介绍

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

3.查看JDK是否安装
[root@tomcat1 ~] java -version
bash: java: 未找到命令
#如果有:rm -rf /usr/bin/java 卸载
4.tomcat1和tomcat2服务器,安装JDK1.8.0_191(JDK必须和nginx版本相适应,不然一直报错)
[root@tomcat1 ~] tar xf jdk-8u191-linux-x64.tar.gz   
[root@tomcat1 ~] mv jdk1.8.0_191/ /usr/local/java
[root@tomcat1 ~] vim /etc/profile
#最下面插入
export JAVA_HOME=/usr/local/java   #设置java目录
export PATH=$PATH:$JAVA_HOME/bin   #在PATH环境变量中添加java根目录的bin子目录
[root@tomcat1 ~] source /etc/profile
[root@tomcat1 ~] java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

5.安装并启动apache-tomcat-8.5.16
[root@tomcat1 ~] tar xf apache-tomcat-8.5.16.tar.gz 
[root@tomcat1 ~] mv apache-tomcat-8.5.16 /usr/local/tomcat8
[root@tomcat1 ~] /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.

 6.关闭tomcat
[root@tomcat1 ~] /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
7.tomcat配置目录及文件说明
[root@tomcat1 ~] ll /usr/local/tomcat8/
总用量 92
drwxr-x---. 2 root root  4096 7月   5 18:29 bin
drwx------. 3 root root   254 7月   5 18:30 conf
drwxr-x---. 2 root root  4096 7月   5 18:29 lib
-rw-r-----. 1 root root 57092 6月  22 2017 LICENSE
drwxr-x---. 2 root root   197 7月   5 18:30 logs
-rw-r-----. 1 root root  1723 6月  22 2017 NOTICE
-rw-r-----. 1 root root  7064 6月  22 2017 RELEASE-NOTES
-rw-r-----. 1 root root 15946 6月  22 2017 RUNNING.txt
drwxr-x---. 2 root root    30 7月   5 18:29 temp
drwxr-x---. 7 root root    81 6月  22 2017 webapps
drwxr-x---. 3 root root    22 7月   5 18:30 work

bin //存放windows或linux平台上启动或关闭的Tomcat的脚本文件

conf //存放Tomcat的各种全局配置文件,其中最主要的是server.xml和web.xml

lib //存放Tomcat运行需要的库文件(JARS)

logs //存放Tomcat执行时的LOG文件

webapps //Tomcat的主要Web发布目录、类似于nginx的html(包括应用程实例)

work //存放jsp编译后产生的.class文件

temp //存放临时文件

三、自定义默认网站目录

1、首先在跟目录下建立一个web目录,并在里面建立一个webapp目录,用于存放网站文件
[root@tomcat1 ~] mkdir -pv /web/webapp
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp"
2、在webapp目录下建立一个index.jsp的测试页面
[root@tomcat1 ~] vim /web/webapp/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
        <head>
                <title>JSP test page</title>
        </head>
        <body>
                <% out.println("Welcome to test site,http://www.test2.com");%>
        </body>
</html>
~           
3、修改Tomcat的server.xml文件

定义一个虚拟主机,并将网站文件路径指向已经建立的/web/webapp,在host段增加context段

#{,.-$(date +%F)}时间戳
[root@tomcat1 ~] cp /usr/local/tomcat8/conf/server.xml{,.-$(date +%F)} #虚拟主机
[root@tomcat1 ~] ll /usr/local/tomcat8/conf/server.xml
server.xml              server.xml.-            server.xml.-2023-07-05 #备份

[root@tomcat1 ~] vim /usr/local/tomcat8/conf/server.xml


<Host name="localhost"  appBase="webapps"
149             unpackWARs="true" autoDeploy="true">
150 
#指向/web/webapp
151              <Context docBase="/web/webapp" path="" reloadable="flase" >
152              </Context>

四、nginx+tomcat负载均衡集群(cluster)

1.正向代理和反向代理

正向代理:VPN就是正向代理作用,连上VPN通过VPN访问目标服务器。

反向代理:客户端访问反向代理服务器,反向代理服务器选择目标服务器获取数据后返回给客户端,客户端不需要任何配置,反向代理服务器就代替了目标服务器。

2.nginx服务器配置(192.168.1.12)
[root@nginx ~] yum -y install pcre-devel zlib-devel openssl-devel lrzsz
[root@nginx ~] tar xf nginx-1.16.0.tar.gz -C /usr/src/
[root@nginx ~] cd /usr/src/nginx-1.16.0/
[root@nginx nginx-1.16.0] yum -y install gcc gcc-c++
[root@nginx nginx-1.16.0] ./configure --prefix=/usr/local/nginx  --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module && make && make install

--prefix=/usr/local/nginx 		//指定安装目录
--user=nginx --group=nginx 		//指定运行的用户和组
--with-file-aio 				//启用文件修改支持
--with-http_stub_status_module 	//启用状态统计
--with-http_ssl_module 		//启用ssl模块
--with-http_flv_module 		//启用flv模块,提供寻求内存使用基于时间的偏移量文件
--with-http_gzip_static_module	//启用gzip静态压缩
3.配置nginx.conf
[root@nginx nginx-1.16.0] vim /usr/local/nginx/conf/nginx.conf
user  nginx;
worker_processes  1;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    upstream tomcat {
    server 192.168.1.133:8080 weight=1;
    server 192.168.1.134:8080 weight=1;
    }


        location / {
            root   html;
            index  index.html index.htm;
        }
        location ~ \.jsp$ {
             proxy_pass http://tomcat;
        }
[root@nginx nginx-1.16.0] /usr/local/nginx/sbin/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@nginx nginx-1.16.0] /usr/local/nginx/sbin/nginx 
[root@nginx nginx-1.16.0] netstat -anptl|grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      11644/nginx: master 
[root@nginx nginx-1.16.0] ps aux |grep nginx |grep -v grep
root      11644  0.0  0.0  45980  1156 ?        Ss   20:11   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     11645  0.0  0.1  46368  1908 ?        S    20:11   0:00 nginx: worker process

4.测试轮询 

 

 5.Nginx负载均衡算法

1、轮询(默认)

        每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。

upstream tomcat_server {

server 192.168.200.112:8080 weight=1;

server 192.168.200.113:8080 weight=1;

weight(轮询权值)

        weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。

 upstream tomcat_server {

server 192.168.200.112:8080 weight=1;

server 192.168.200.113:8080 weight=2;

2、least_conn

least-connected方式可以更公平的将负载分配到多个机器上面。使用least-connected,nginx不会将请求分发到繁忙的机器上面,而且将新的请求分发的较清闲的机器上面。

 upstream tomcat_server {

    least_conn;

server 192.168.200.112:8080 weight=1;

server 192.168.200.113:8080 weight=1;

3、ip_hash

        每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题。

upstream tomcat_server {

ip_hash;

server 192.168.200.112:8080 weight=1;

server 192.168.200.113:8080 weight=1;

4、fair

        比 weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身不支持fair,如果需要这种调度算法,则必须安装upstream_fair模块。

upstream tomcat_server {

fair;

server 192.168.200.112:8080 weight=1;

server 192.168.200.113:8080 weight=1;

5、url_hash

        按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器,可以进一步提高后端缓存服务器的效率。Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包。

upstream tomcat_server {

hash $request_uri;

hash_method crc32;

server 192.168.200.112:8080;

server 192.168.200.113:8080;

五、tomcat数据库连接

1.下载模拟项目
[root@tomcat1 ~] rz -E
rz waiting to receive.
[root@tomcat1 ~] tar xf SLSaleSystem.tar.gz -C /web/webapp/
[root@tomcat1 ~] ls /web/webapp/SLSaleSystem/
logs  META-INF  statics  WEB-INF
[root@tomcat1 ~] vim /usr/local/tomcat8/conf/server.xml

             <Context docBase="/web/webapp/SLSaleSystem" path="" reloadable="flase" >
151             </Context>
[root@tomcat1 ~] /usr/local/tomcat8/bin/shutdown.sh 
[root@tomcat1 ~] /usr/local/tomcat8/bin/startup.sh 

 2.在192.168.1.133)上安装mysql
[root@tomcat1 ~] yum -y install mariadb-server mariadb
[root@tomcat1 ~]systemctl start mariadb.service 
[root@tomcat1 ~] mysql
MariaDB [(none)]> create database slsaledb;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on slsaledb.*to admin@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 

[root@tomcat1 ~] vim /web/webapp/SLSaleSystem/WEB-INF/classes/jdbc.properties
url=jdbc\:mysql\://192.168.1.135\:3306/slsaledb?useUnicode\=true&characterEncoding\=UTF-8
uname=admin
[root@tomcat1 ~] /usr/local/tomcat8/bin/shutdown.sh 

[root@tomcat1 ~] /usr/local/tomcat8/bin/startup.sh 

# 账号:admin  密码:123456 

 六、部署开源站点jpress

1.配置数据库
[root@tomcat1 ~] mysql

MariaDB [(none)]> create database jpress DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on jpress.* to jpress@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]>  flush privileges;
Query OK, 0 rows affected (0.00 sec)
2.jpress站点上线
[root@tomcat1 ~] ll  #下载jpress站点文件

-rw-r--r--. 1 root root  20764271 9月  19 2016 jpress-web-newest.war

[root@tomcat1 ~] vim /usr/local/tomcat8/conf/server.xml  #注释一下两行
#            <Context docBase="/web/webapp/SLSaleSystem" path="" reloadable="flase" >
#             </Context>

[root@tomcat1 ~] mv jpress-web-newest.war /usr/local/tomcat8/webapps/
[root@tomcat1 ~] ls /usr/local/tomcat8/webapps/
docs  examples  host-manager  jpress-web-newest  jpress-web-newest.war  manager  ROOT
#webapps/ 里面的.war文件会自动解压   jpress-web-newest
[root@tomcat1 ~] /usr/local/tomcat8/bin/shutdown.sh
[root@tomcat1 ~] /usr/local/tomcat8/bin/startup.sh  

重启web容器

[root@tomcat1 ~] /usr/local/tomcat8/bin/shutdown.sh
[root@tomcat1 ~] /usr/local/tomcat8/bin/startup.sh

 

 可以用管理员登录

 

 你可以自己写文章

 

 

更多推荐