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

news2024/11/24 3:31:01

目录

一、环境准备

二、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 ~] 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  

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode】HOT 100(21)

题单介绍&#xff1a; 精选 100 道力扣&#xff08;LeetCode&#xff09;上最热门的题目&#xff0c;适合初识算法与数据结构的新手和想要在短时间内高效提升的人&#xff0c;熟练掌握这 100 道题&#xff0c;你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

源启数据资产管理平台助力金融机构加速数据资产化过程

自2000年左右&#xff0c;金融行业开始做数据管理。从数据仓库到数据治理、数据应用&#xff0c;再到后来的大数据&#xff0c;以及今天的数据管理。我们把这个时期总结成数据资产化时代&#xff0c;或者叫国产化时代。 为什么有两个名字&#xff1f;数据资产化时代是因为国家…

关于PID闭环控制中上位机与下位机通讯代码的解析分享(一)

下位机接收数据代码&#xff08;以STM32单片机为例&#xff09;与上位机发送数据C#代码分享 1、下位机代码&#xff1a; /*** brief 接收的数据处理* param void* return -1&#xff1a;没有找到一个正确的命令.*/ int8_t receiving_process(void) {uint8_t frame_data[…

虚幻引擎程序化资源生成框架PCG 之 常用撒点方法小结

PCG真好玩&#xff0c;门槛很低&#xff0c;天花板很高 文章目录 前言1. 基本撒点1.1 Landscape上撒点1.2 使用射线检测在地表面撒点1.3 使用曲线撒点1.3.1 沿曲线撒点1.3.2 在闭合曲线内部撒点 1.4 在StaticMesh表面撒点 2. 进阶撒点2.1 在闭合曲线内部放射状撒点2.2 在Mesh表…

MedCalc v22.009 医学ROC曲线统计分析软详细图文教程

简介 MedCalc是一款医学 ROC 曲线统计软件&#xff0c;用于ROC曲线分析的参考软件&#xff0c;医学工作者设计的医学计算器&#xff0c;功能齐全。它可以帮助医生快速作出普通的医学计算&#xff0c;从而对症下药。提供超过76种常用的规则和方法&#xff0c;包括&#xff1a;病…

《消失的她》豆瓣短评数据分析

《消失的她》豆瓣短评数据分析 文章目录 《消失的她》豆瓣短评数据分析一、前言二、数据加载和预处理三、探索性数据分析1、查看评论的评价分布2、查看评论点赞数的分布3、查看评论的地理分布 四、情感分析 一、前言 最近爆火的电影《消失的她》你们有没有去看过呢&#xff1f…

开源站点(jpress)部署

第三阶段基础 时 间&#xff1a;2023年7月5日 参加人&#xff1a;全班人员 内 容&#xff1a; 开源站点部署&#xff08;jpress&#xff09; 服务器设置&#xff1b;单台服务器&#xff0c;安装tomcat和mariadb 环境配置&#xff1a; 1、关闭防火墙 systemctl stop fir…

【大数据之Hive】二十、Hive之调优相关配置及Explain查看执行计划

1 Yarn资源配置 需要调整Yarn的参数与CPU、内存等资源有关 &#xff08;1&#xff09;yarn.nodemanager.resource.memory-mb   设置一个NodeManager节点分配给容器Container使用的内存&#xff0c;取决于NodeManager所在节点的总内存容量和该节点运行的其他服务的数量&#x…

搭建高性能数据库集群之二:MySQL读写分离(基于mycat2-1.22)

一、概述 读写分离是常见的一种数据库架构&#xff0c;一般是由 1 主多从构成&#xff0c;特殊场景下也会存在多主多从的架构。 无论哪一种架构&#xff0c;对于应用程序来说都是多个数据源&#xff0c;增加了代码的复杂性。如果配合 mycat&#xff0c;则可以实现屏蔽数据库复…

【C++】深入剖析vector

好久不见~让大家久等啦~ 本期让我们来揭开vector的面纱&#xff0c;看看它底层是怎么实现的~ 目录 一、STL定义vector的源码分析&#xff1a; 二、vector的模拟实现 2.1 vector框架的搭建&#xff08;一些简单功能函数的实现&#xff09; 2.2 迭代器失效问题 2.2.1 实现i…

【Spring】SpringCloud Ribbon中的7种负载均衡策略!

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 负载均衡通器常有两种实现手段&#xff0c;一种是服务端负载均衡器&#xff0c;另一种是客户端负载均衡器&#xff0c;而我们今天的主角 Ribbon 就属于后者——客户端负载均衡器。 服务…

个人总结:测试用例万能公式+常见例子(公式的运用)

前言 测试工程师面试的时候&#xff0c;有时候会当场考测试用例&#xff0c;毕竟这是测试工程师的基本功。 对于我来说&#xff0c;让我写测试用例会比让我直接说测试用例更好点。 直接嘴里说出来&#xff0c;容易逻辑混乱&#xff0c;给人一种想到啥说啥的感觉。 其实个人感…

MySQL学习基础篇(九)---子查询

MySQL学习基础篇(九)—子查询 子查询指一个查询语句嵌套在另一个查询语句内部的查询&#xff0c;这个特性从MySQL 4.1开始引入。SQL 中子查询的使用大大增强了 SELECT查询的能力&#xff0c;因为很多时候查询需要从结果集中获取数据&#xff0c;或者需要从同一个表中先计算得出…

MySQL安装与部署

第一种方法&#xff1a;在线安装 配置一个安装yum源 Adding the MySQL Yum Repository 可以手动配置yum源&#xff0c;baseurl指向国内镜像源地址&#xff0c;比如清华、中科大。 Installing MySQL Starting the MySQL Server&#xff1a; 查询临时登录密码 修改数据库密码…

CTFHub XSS DOM反射 WriteUp

前言&#xff1a;本文需要注册一个xss平台&#xff0c;以接收xss反弹回来的数据&#xff0c;请自己在互联网上寻找合适的xss平台 1. 构造闭合语句 根据题目提示&#xff0c;判断网站存在DOM xss漏洞 查看页面源代码&#xff0c;发现关键位置&#xff0c;其中CTFHub is very n…

【揭秘Vue核心】深入解析Object.defineProperty和Proxy的区别,让你秒懂!

问题&#xff1a;Object.difineProperty 和 proxy 有什么区别&#xff1f; Object.defineProperty 和 Proxy 是用于实现响应式数据的两种不同方式。 Object.defineProperty Object.defineProperty 通过直接修改对象的属性描述符来实现数据的劫持。Vue 2.x 中就是通过 Objec…

vscode 之 工作区的应用(解决vue2插件vetur、vue3插件volar禁用启用问题)

目录 前言创建工作区添加文件夹到工作区为当前打开的工作区指定特定环境工作区删除文件夹如何切换工作区 前言 工作区&#xff1f;&#xff1f;&#xff1f;为什么要工作区&#xff1f;&#xff1f;&#xff1f; 首先工作区简单理解就是vscode工作时的区域、范围&#xff1b; 延…

如何正确的安装MySQL

1. 使用rpm包在线安装 1.1 确认自己电脑版本(linux) [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)ps:本次安装采用的系统为Centos 7.9 所使用的mysql为5.7 1.2 下载rpm包 下载地址 https://dev.mysql.com/downloads/mysql/ ps: 自己…

初识树莓派:强大功能与创造力的结合

目录 树莓派4B简介&#xff1a; 树莓派系统镜像下载&#xff1a; 树莓派4B简介&#xff1a; 树莓派4B是一款功能强大且受欢迎的单板计算机&#xff0c;由树莓派基金会开发。作为树莓派系列的最新版本&#xff0c;4B提供了许多令人兴奋的特性和改进&#xff0c;使其成为教育、创…

SSM简单项目遇到的几个问题(最后一个问题,虽然能运行,但是我找不出问题出在哪里)

这几个问题&#xff0c;干扰了我很长时间。 主要因为书本的例子&#xff0c;是通过controller层返回到jsp层。但是&#xff0c;最后一个SSM项目&#xff0c;它用的是controller返回信息给Service层&#xff0c;再由Service层返回Jsp层。 实训&#xff1a;编写一个模糊查询姓名…