LNMT(linux下nignx+mysql+tomcat(中间件)应用)部署应用、及各服务介绍、部署开源站点jpress

目录

一、环境准备

二、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)

192.168.1.135(mysql)

关闭防火墙

[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.135(mysql)上安装mysql

[root@mysql ~] yum -y install mariadb-server mariadb
[root@mysql ~] systemctl start mariadb.service 
[root@mysql ~] 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@mysql ~] mysqlMariaDB [(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  

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/9068.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试之【单元测试、系统测试、集成测试】

一、单元测试的概念 单元测试&#xff08;Unit Testing&#xff09;是对软件基本组成单元进行的测试&#xff0c;如函数&#xff08;function或procedure&#xff09;或一个类的方法&#xff08;method&#xff09;。当然这里的基本单元不仅仅指的是一个函数或者方法&#xff0…

web爬虫第四弹 - 生产者与消费者模型

聊聊天 做了很长一段时间爬虫工作&#xff0c; 一直没时间记录。 去年好不容易静下心来想写点东西&#xff0c; 也是因为各种琐事断掉了&#xff0c; 看了下之前的爬虫笔记。 web爬虫第三弹&#xff0c; postman的使用&#xff1b; 第四弹&#xff1a;代理ip的充分使用&#x…

手把手用项目实战教你从“一般测试”华丽转身成为“专业测试”

一般测试 vs 专业测试 一般测试&#xff1a;就是很多粉丝自己摸索着学习就容易变成这种&#xff1a; 你说他不会吧&#xff1f;他好像都知道&#xff0c;你说他都会吧&#xff0c;又会工作中各种问题&#xff0c;面试问啥啥说不出来&#xff01; 我们把这种情况的人光荣的就叫…

Windows下通过FastGithub加速国内GitHub访问

有时候在国内访问GitHub会非常慢&#xff0c;有时候直接打不开&#xff0c;无法访问&#xff0c;最近了解到了FastGithub 可以解决以下几个问题: github加速神器&#xff0c;解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问…

交换排序--冒泡排序和快速排序

交换&#xff0c;是指根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置 一&#xff0c;冒泡排序 1.基本思想&#xff1a;从后往前&#xff08;或从前往后&#xff09;两两比较相邻元素的值&#xff0c;若为逆序&#xff08;A[i-1] > A[i]&#xff09;&a…

【MYSQL基础】基础命令介绍

基础命令 MYSQL注释方式 -- 单行注释/* 多行注释 哈哈哈哈哈 哈哈哈哈 */连接数据库 mysql -u root -p12345678退出数据库连接 使用exit;命令可以退出连接 查询MYSQL版本 mysql> select version(); ----------- | version() | ----------- | 8.0.27 | ----------- 1…

ASP.Net Core Web API项目发布到IIS(二)

目录 一.启动并配置IIS环境 1.启用或关闭window功能 2.设置万维网服务 3.点击确定等待配置更改 二.创建新的Web网站并进行设置 1.打开IIS管理 2.配置默认的网站 3.创建新的网站 4.测试 三.可能出现的问题 1.404错误 前一篇已经记录了如何创建项目并发布到文件夹&#x…

【MySQL系列】在Centos7环境安装MySQL

「前言」文章内容大致是在Centos7环境安装MySQL&#xff0c;演示安装的版本为5.7 「归属专栏」MySQL 「笔者」枫叶先生(fy) 「座右铭」前行路上修真我 「枫叶先生有点文青病」「句子分享」 浮生梦&#xff0c;三生渺渺&#xff0c; 因缘无踪&#xff0c;虽堪恋&#xff0c…

C++动态内存管理

文章目录 &#x1f428;0. 前言&#x1f98d;1. C/C内存分布&#x1f988;2. C内存管理&#x1f41a;2.1 new和delete操作内置类型&#x1f41a;2.2 new和delete操作自定义类型 &#x1f9ad;3. new和delete底层&#x1f5ff;3.1 operator new和operator delete函数&#x1f5f…

2021年国赛高教杯数学建模C题生产企业原材料的订购与运输解题全过程文档及程序

2021年国赛高教杯数学建模 C题 生产企业原材料的订购与运输 原题再现 某建筑和装饰板材的生产企业所用原材料主要是木质纤维和其他植物素纤维材料,总体可分为 A&#xff0c;B&#xff0c;C 三种类型。该企业每年按 48 周安排生产&#xff0c;需要提前制定 24 周的原材料订购和…

Windows Update当前无法检查更新怎么办?

当进行Windows更新或升级时&#xff0c;可能会提示“Windows Update当前无法检查更新&#xff0c;因为未运行服务。您可能需要重新启动计算机”。而当重启也无法解决问题时&#xff0c;我们该怎么办呢&#xff1f;下面我们就来了解一下。 1、删除Software Distribution文件夹中…

基于SpringBoot+SpringCloud+vue的智慧养老平台设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…