linux-install

docker run -id --name=redis -p 6381:6379 redis:7.0

docker run -id --name=mysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

docker run -id --name nginx -p 83:80 nginx:1.20

一、基础环境准备

1.1、安装VM

1.2、在VM上导入linux iso镜像,装好linux系统

华为centos镜像下载地址
    https://mirrors.huaweicloud.com/centos/
    https://mirrors.huaweicloud.com/centos/7.9.2009/isos/x86_64/
    
网易centos镜像下载地址	
	http://mirrors.163.com/centos/7.9.2009/isos/x86_64/

查看linux版本命令
	1、cat /etc/redhat-release :CentOS Linux release 7.9.2009 (Core)
	2、cat /etc/centos-release :CentOS Linux release 7.9.2009 (Core)

查看linux内核命令
	uname -r : 3.10.0-1160.62.1.el7.x86_64

1.3、配置网络

# vi /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no" 
BOOTPROTO="none"     			#开启静态IP,也可用 static
IPADDR="192.168.136.161"
NETMASK="255.255.255.0"         # 子网掩码
GATEWAY="192.168.136.2"			# 网关地址
DNS1="114.114.114.114"			# DNS服务器
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="63d66e06-e7d7-45ff-ab0b-8e6dcaf912b9"
DEVICE="ens33"
ONBOOT="yes"
PREFIX="24"
IPV6_PRIVACY="NO"

1.4、安装linux插件

1、yum -y install net-tools		--安装网络插件(ifconfig)	
2、yum -y install vim				--安装vim插件
3、yum -y install lrzsz 			--安装传输插件	
4、yum -y install git 				--安装git
5、yum -y install tree				--安装属性展示插件
6、yum -y install wget				--安装下载插件
7、yum -y install unzip zip		--安装zip压缩插件
	zip -r myfile.zip ./* :将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩
	unzip -o -d /home/sunny myfile.zip :  把myfile.zip文件解压到 /home/sunny/目录下
        -o:不提示的情况下覆盖文件;	
        -d:指明将文件解压缩到/home/sunny目录下
    zip -d myfile.zip smart.txt:删除压缩文件中smart.txt文件
    zip -m myfile.zip ./rpm_info.txt :向压缩文件中myfile.zip中添加rpm_info.txt文件
8、yum -y update 						--更新yum源
9、yum -y install lsof					--安装lsof插件(查看端口占用)

1.5、yum源修复

方式一:
    1、 CentOS7利用yum进行软件安装,报错:
         There are no enabled repos. Run "yum repolist all" to see the repos you have
    2、下载对应版本repo文件,如:CentOS7-Base-163.repo, 放入/etc/yum.repos.d/里
    3、下载地址:http://mirrors.163.com/.help/centos.html
    4、完成后,查看/etc/yum.repos.d文件夹下是否有了CentOS-Base.repo文件。
    5、执行命令,生成缓存:
       yum clean all 
       yum makecache
       
方式二:
	1、先备份本地默认的yum源
		cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
	2、获取新的yum源,一般使用阿里或者网易的
		1)、阿里
		cd /etc/yum.repos.d/
	wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
		2)、网易
		cd /etc/yum.repos.d/
		
		wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
	3、执行命令,生成缓存:
		yum clean all 
		yum makecache

1.6、设置防火墙

关于防火墙: 要想在windows上能够访问,还需要开放防火墙的对应的端口,如mysql的3306端口
	1)、查看防火墙状态
		1、service firewalld status
		2、systemctl status firewalld 
		3、firewall-cmd --state 
	2)、开放单个端口:
		firewall-cmd --zone=public --add-port=3306/tcp --permanent
		firewall-cmd --reload
	3)、关闭单个端口:
		firewall-cmd --zone=public --remove-port=8080/tcp --permanent
		firewall-cmd --reload
	4)、查看开放端口:
		firewall-cmd --zone=public --list-ports  
	5)、完全关闭防火墙
		systemctl stop firewalld	#关闭防火墙
		systemctl disable firewalld  #禁用防火墙(禁止随系统自动启动)
	6)、开启防火墙
		systemctl start firewalld	#开启防火墙
		systemctl enable  firewalld  #启用防火墙(随系统自动启动)	

1.7、常用命令

1、文件和目录命令
	1)、退回上一级目录 cd .. |进入根目录 cd / |进入当前用户主目录cd ~ 


1、查看端口占用
	linux:	netstat -tunlp | grep 端口号
			 lsof -i:端口号  (需要root权限执行)【安装lsof:yum -y install lsof.*】
	windows: netstat -ano | findstr 端口号
	
2、杀进程
	linux:  kill -9 进程ID
	windows: tastkill /PID 进程ID /F
	
3、服务管理
	service 【服务名称】 【start|restart|stop|status】
		例子: service docker start
    systemctl 【command】 【unit】  (command为命令,unit为服务名)
    	例子: systemctl enable docker  
    	command命令还有如下:
        ​ start:立刻启动后面接的 unit。
        ​ stop:立刻关闭后面接的 unit。
        ​ restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。
        ​ reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。
        ​ enable:设置下次开机时,后面接的 unit 会被启动。
        ​ disable:设置下次开机时,后面接的 unit 不会被启动。
        ​ status:目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。
        ​ is-active:目前有没有正在运行中。
        ​ is-enable:开机时有没有默认要启用这个 unit。
        ​ kill :不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。
        ​ show:列出 unit 的配置。
        ​ mask:注销 unit,注销后你就无法启动这个 unit 了。
        ​ unmask:取消对 unit 的注销。
4、wget : 
	 wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果
	 是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联
	 到服务器上从停止的地方继续下载。
5、sed:
	替换文本中的关键字
	sed -i -e ‘s#需要被替换的关键字#目标关键字#g’ 文件名
	
6、查看进程
	查看java进程:ps -ef|grep java
	查看java进程名占用进程的进程id:pgrep java
    查看指定进程id的运行目录:pwdx 54096
	

1.8、vim常用命令

1、进入vim:vim 文件名
2、进入编辑模式: 按 【i】
3、退出编辑模式: 按 【ESC】
4、保存退出vim:  输入 【:wq】
5、强制退出vim: 输入 【q!6、定位到第一行: 按 【gg 或 1G】
7、定位到最后一行: 按 【G】
8、定位到指定行: 输入 【指定行号G】
9、定位到行首: 按【0】
10、定位到行尾 按 【shift + 411、撤销:按【u】

二、安装JDK

​ JDK下载地址:https://www.oracle.com/java/technologies/downloads/

1、自己新建一个目录,用于存放和安装JDK:mkdir -p /root/install/jdk
2、使用linux自带sftp工具(alt+p)
			 从本机上传至linux命令 : put 文件夹路径 
			 从linux上获取文件命令 : get 文件夹路径
		 或者使用lrzsz工具(yum -y install lrzsz)
			 从本机上传至linux命令 : rz (图形化界面,将文件上传至当前目录)
             从linux上获取文件命令 : sz 文件夹路径
         将JDK1.8的安装包上传至自己新建的目录
3、解压缩包: tar -zxvf jdk-8u171-linux-x64.tar.gz
4、编辑系统profile文件
    	vim /etc/profile
    	添加如下配置:
        #set java environment
        JAVA_HOME=/root/install/jdk/jdk1.8.0_171
        JRE_HOME=/root/install/jdk/jdk1.8.0_171/jre
        CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
        PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
        export JAVA_HOME JRE_HOME CLASS_PATH PATH
5、刷新配置文件
		source /etc/profile
6、验证
		java -version 

二、安装Tomcat

2.1、linux安装

1、将Tomcat的安装包上传至linux:/root/install/tomcat
2、进入tomcat目录进行解压:tar -zxvf apache-tomcat-7.0.57.tar.gz
3、启动tomcat:
	cd /root/install/tomcat/apache-tomcat-7.0.57/bin
	sh startup.sh或者./startup.sh
4、查看是否启动
	1)、通过查看日志的形式:
	     tail -500f /root/install/tomcat/apache-tomcat-7.0.57/logs/catalina.out
	2)、通过查看进程的方式:ps -ef|grep tomcat
5、可在tomcat的webapp中放入项目,如新建test文件夹,在其中放入index.html文件
6、访问:http://192.168.200.161:8080/mytest/index.html

2.2、docker安装

#1、搜索tomcat镜像
docker search tomcat

#2、拉取tomcat镜像
docker pull tomcat:9.0

#3、在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat

#4、进入tomcat目录 创建容器,设置端口映射、目录映射、自动启动
docker run -id \
-p 8081:8080 \
--name=tomcat9 \
--restart=always \
-v $PWD:/usr/local/tomcat/webapps \
tomcat:9.0

#5、在tomcat目录下创建mytest目录,并新建index.html,写入文字
#6、访问 http://192.168.200.161:8081/mytest/index.html 进行测试

三、安装Mysql

3.1、linux安装

​ Mysql下载地址:https://downloads.mysql.com/archives/community/

​ https://dev.mysql.com/downloads/installer/
​ https://downloads.mysql.com/archives/installer/

1、卸载。下载完成之后,先不要急着安装。由于某些原因,在安装 MySQL 之前,可能电脑中已经有了安装过 MySQL 的痕迹,这可能会给下面 MySQL 的安装带来各种问题(如密码不能初始化、MySQL 执行失败等),因此首先需要先彻底清除电脑中与 MySQL 有关的任何文件。
   rpm -qa							查询当前系统中安装的所有软件
   rpm -qa | grep mariadb			查询当前系统中安装的名称带mariadb的软件	
   通过查询,发现在当前系统中存在mariadb数据库,是CentOS7中自带的,而这个数据库和MySQL数据库是冲突的,	所以要想保证MySQL成功安装,需要卸载mariadb数据库。
   rpm中,卸载软件的语法为:rpm -e --nodeps  软件名称
   卸载mariadb: 
   rpm -e --nodeps  mariadb-libs-5.5.60-1.el7_5.x86_64
   稳妥起见,用命令再次检测
   1)、检查电脑里是否已经安装了 MySQL。输入以下命令来查看电脑中与 MySQL 有关的安装信息。
   	sudo yum list installed mysql*
   2)、如果命令的输出什么也没有,那就无需卸载。如果有,则要输入以下命令来卸载:
   	sudo yum erase mysql*
	3)、卸载通常不是万能的,还需要手动删除与 MySQL 有关的文件。输入以下命令来查找这种文件
		sudo find / -name 'mysql*'
   4)、输入以下命令来删除目录 /var/、/usr/、/etc/ 下的这些文件
   	sudo find /var /usr /etc -name "mysql*" -exec rm -r {} \;
   5)、删除完成之后,再使用上面的查找命令,看看还能不能找到这些文件。
   
2、上传:将下载好的mysql rpm包上传至linux目录:/root/install/mysql

3、解压:tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz 

4、安装:核心的安装包是 mysql-community-server。在普通情况下,使用命令 sudo yum localinstall mysql-community-server-8.0.26-1.el8.x86_64.rpm 即可。但在此处却不能这样做,因为 MySQL 的各个组成安装包之间有复杂的依赖关系,而 mysql-community-server 并不是依赖的起点,所以需要按依赖关系依次安装
   rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
   rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
   rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
   rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
   rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
   yum install net-tools
   rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
 但是,注意: 以下命令可以自动解析本目录下各安装包的依赖关系,并自动按顺序安装:
   sudo yum -y localinstall *.rpm
5、验证
   mysql --version
6、运行状态控制:MySQL安装完成之后,会自动注册为系统的服务,服务名为mysqld。那么,我们就可以通过systemctl指令来查看mysql的状态、启动mysql、停止mysql
   systemctl status mysqld		查看mysql服务状态
   systemctl start mysqld		启动mysql服务
   systemctl stop mysqld		停止mysql服务	
   systemctl enable mysqld 	开机自启
当然,还可以通过如下两种方式,来判定mysql是否启动:
	netstat -tunlp					查看已经启动的服务
   netstat -tunlp | grep mysql		查看mysql的服务信息
   ps –ef | grep mysql				查看mysql进程
   
7、查看临时密码:rpm安装的mysql,在mysql第一次启动时,会自动帮我们生成root用户的访问密码,并且输出在mysql的日志文件 /var/log/mysqld.log,注意,该密码如果忘记,只能重新安装mysql
   cat /var/log/mysqld.log | grep password      

8、登录
   mysql -uroot -p'ZBrVGHWNk0(A'

9、修改密码
   查看密码强度设定:SHOW VARIABLES LIKE 'validate_password%';
   修改密码强度:
   set global validate_password_length=4;	  #密码长度最低位数,默认是8
   set global validate_password_policy=LOW;  #密码安全等级低,默认是MEDIUM,便于密码可以修改成root
   set password = password('root');		  #设置localhost user密码为root
   
   也可用如下命令修改:
   #设置指定user的密码为root
   ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'
   #刷新权限
   flush privileges;
   
   
10、开启远程访问权限
   #也可用来修改指定用户密码
   grant all on *.* to 'root'@'%' identified by 'root';   #注意:远程只能通过% Host访问
   #或
   update user set user.Host='%' where user.User='root';    
   #然后刷新权限
   flush privileges;
   
11、连接验证
   1)、 通过windwos cmd连接:
   	mysql -h 192.168.200.161 -P 3306 -uroot -proot
   2)、通过客户端连接工具连接
   	通过某些客户端连接时,可能会报如下错:plugin caching sha2 password could not be loaded
   	原因是:客户端采用的密码认证方式落后了,现在8.0的mysql采用的sha2加密方式并没有更新到R包中,
   	       因此需要更改mysql的指定用户的加密方式,拿wifi举例,等于现在用户设备不支持wap2加密,只能
   	       用上一代的wap加密方式。
   	解决:修改mysql的加密方式
   	  #修改加密规则
   	  ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
   	  ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
   	  #更新用户的密码
   	  ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
         ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; 
   	  #刷新权限
   	  FLUSH PRIVILEGES;
   	  #重置密码
   	  #ALTER USER 'root'@'localhost' IDENTIFIED  BY 'password'; 
   
12、设置开机自启
   systemctl enable mysqld
   
13、修改msyql root密码
   方法1: 用SET PASSWORD命令
       首先登录MySQL,用如下命令查看数据库root用户密码情况:
       SELECT `HOST`,`User`,`authentication_string` FROM mysql.user WHERE `User` = 'root'
        #1、设置 localhost Host密码为root123  (localhost Host控制本机器连接)
        #2、设置 % Host密码为root123  (% Host控制远程连接)
       格式:mysql> set password for 用户名@Host = password('新密码');
       例子:mysql> set password for root@localhost = password('root123');
            mysql> set password for root@'%' = password('root123');
            flush privileges;

   方法2:用mysqladmin 修改Host为localhost的用户密码
       格式:mysqladmin -u用户名 -p旧密码 password 新密码
       例子:mysqladmin -uroot -proot password root123  #设置localhost Host密码为root123
            flush privileges;

14、如果忘记mysql root密码
   1)、停掉mysql服务  service mysqld stop
   2)、修改/etc/my.cnf 文件,在mysqld下面 增加 skip-grant-tables ,作用是登陆是跳开密码校验
   3)、启动mysql服务  service mysqld start
   4)、登陆 mysql -u root
   5)、修改密码(将密码修改为 root123 ) 依次执行以下操作
   	use mysql
   	#一并修改Host为%和Host为localhost的两个root用户密码为root123
   	update mysql.user set authentication_string=password('root123') where user='root' 
   	flush privileges;
   6)、/etc/my.cnf 文件删掉 skip-grant-tables
   6)、重启mysql服务
   	service mysqld restart

3.2、docker 安装

#1、搜索mysql镜像
docker search mysql

#2、拉取mysql镜像
docker pull mysql:8.0

#3、在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/install/docker/mysql
cd ~/install/docker/mysql

#4、进入mysql目录 创建容器,设置端口映射、目录映射、自动启动
docker run -id \
-p 3307:3306 \
--name=mysql8 \
--restart=always \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci 

#5、进入容器,操作mysql
docker exec –it mysql /bin/bash

#6、可使用mysql客户端连接mysql进行测试

四、安装Maven

​ Maven下载地址:http://maven.apache.org/download.cgi

1、下载并上传至linux目录:/root/install/maven
2、解压:tar -zxvf apache-maven-3.6.1-bin.tar.gz -C /usr/local
3、修改环境变量:编辑系统profile文件
    	vim /etc/profile
    	修改添加如下配置:
        #set java environment
        JAVA_HOME=/root/install/jdk/jdk1.8.0_171
        JRE_HOME=/root/install/jdk/jdk1.8.0_171/jre
        MAVEN_HOME=/root/install/maven/apache-maven-3.6.1
        CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
        PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin
        export JAVA_HOME JRE_HOME MAVEN_HOME CLASS_PATH PATH
  让配置生效: source /etc/profile
4、配置本地仓库地址
	1)、进入setting文件目录
		cd /root/install/maven/apache-maven-3.6.1/conf
	2)、编辑settings.xml配置文件
		vim settings.xml
	3)、在其中增加如下配置,配置本地仓库地址
		<localRepository>/root/install/maven/repository</localRepository>
	4)、在settings.xml中的<mirrors>标签中,配置阿里云的私服
		<mirror> 
            <id>alimaven</id> 
            <mirrorOf>central</mirrorOf> 
            <name>aliyun maven</name> 
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror> 

四、安装Nginx

1、介绍
	Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。

2、官网:官网:https://nginx.org/
3、官方下载:http://nginx.org/en/download.html

4.1、linux安装

1、由于nginx是基于c语言开发的,所以需要安装c语言的编译环境,及正则表达式库等第三方依赖库:
	yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2、在线下载Nginx安装包(可选)
	yum -y install wget
	wget https://nginx.org/download/nginx-1.16.1.tar.gz  (wget命令用来从指定的URL下载文件)
3、配置Nginx编译环境
	cd nginx-1.16.1
	./configure --prefix=/usr/local/nginx
4、编译 & 安装
	make & make install
5、安装完Nginx后,切换到Nginx的安装目录(/usr/local/nginx),Nginx的目录结构如下:
	1)、conf:配置文件的存放目录
	2)、conf/nginx.conf:Nginx的核心配置文件
	3)、html:存放静态资源(html, css,等) 部署到Nginx的静态资源都可以放在html目录中
	4)、logs:存放nginx日志(访问日志、错误日志等)
	5)、sbin/nginx:二进制文件,用于启动、停止Nginx服务,执行命令需切到本目录执行
6、常用nginx命令
	1)、查看版本:./nginx -v
	2)、检查配置文件:./nginx -t (可用于修改核心配置文件后,检测文件是否有错误)
	3)、启动:./nginx 
	4)、检测:ps -ef|grep nginx(服务启动后,默认就会有两个进程,一个主进程,一个工作进程)
	5)、停止:./nginx -s stop
	6)、重新加载:./nginx -s reload (修改了Nginx配置文件后,需要重新加载才能生效)
7、配置nginx环境变量
	vim /etc/profile :
        NGINX_HOME=/usr/local/nginx/sbin
        PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin:$NGINX_HOME
    source /etc/profile
8、访问:直接访问Nginx的80端口, http://192.168.200.161


4.2、docker安装

#1、搜索ngnix镜像
docker search ngnix

#2、拉取ngnix镜像
docker pull ngnix

#3、在/root目录下创建ngnix目录用于存储ngnix数据信息,并配置ngnix配置文件
mkdir ~/install/docker/ngnix
cd ~/install/docker/ngnix
mkdir conf
cd conf
vim nginx.conf

#4、在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}

#5、进入ngnix目录 创建容器,设置端口映射、目录映射、自动启动
docker run -id -p 81:80 --name=nginx1.20 --restart=always \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/var/log/nginx  -v $PWD/html:/usr/share/nginx/html \
nginx:1.20

#6、在html目录下新建index.html,写入文字
#7、访问 http://192.168.200.161 进行测试

4.3、nginx应用

1、nginx的配置文件(conf/nginx.conf)整体上分为三部分: 全局块、events块、http块。
	1)、全局块:配置和nginx运行相关的全局配置
	2)、events块:配置和网络连接相关的配置
	3)、http块:配置代理、缓存、日志记录、虚拟主机等配置
			http块中可以包含多个server块
				每个server块可以配置多个location块。
2、部署静态资源
	1)、Nginx可以作为静态web服务器来部署静态资源。这里所说的静态资源是指在服务端真实存在,并且能够直接
	    展示的一些文件,比如常见的html页面、css文件、js文件、图片、视频等资源。
	2)、相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到
	     Nginx中。
	3)、静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。
		server {
            listen 80;				#监听端口	
            server_name localhost;	#服务器名称
            location / {			#匹配客户端请求url
                root html;			#指定静态资源根目录
                index index.html;	#指定默认首页
            }
        }
	4)、示例一:在 /usr/local/nginx/html中新建文件hello.html,写入代码,访问:	
	     http://192.168.200.161/hello.html	
	5)、示例二:在配置文件http/server 块中修改如下配置
        location / {			#匹配客户端请求url
        	root  html;			#指定静态资源根目录
        	index hello.html;	#指定默认首页
        }
		重新加载:nginx -s reload
		访问: http://192.168.200.161
3、反向代理
	1)、window上用IDEA将项目project_demo打包两次,端口分别为8888、9999
	2)、上传至/root/app目录
	3)、启动
		nohup java -jar hello-project1.jar &>demo1.log &
        nohup java -jar hello-project2.jar &>demo2.log &
        
        测试访问:
        http://192.168.200.161:8888/hello
        http://192.168.200.161:9999/hello
    4)、nginx.conf并增加如下配置: 
    	#upstream指令可以定义一组服务器
        upstream targetserver{	
            server 192.168.200.161:8888;
            server 192.168.200.161:9999;
        }

        server {
            listen       8000;
            server_name  localhost;
            location / {
                proxy_pass http://targetserver;
            }
        }	
        
        server {
            listen       82;
            server_name  localhost;
            location / {
                proxy_pass http://192.168.200.161:8000;
            }
        }
        测试:http://192.168.200.161:8000/hello
        测试:http://192.168.200.161:82/hello
   5)、关于负载均衡配置
   		1、轮询默认方式
   			每个请求,按时间顺序逐一分配到不同的后端应用服务器节点,如果后端服务出现故障,nginx能够自动
   			剔除该节点
   		2、weight:权重方式,根据权重分发请求,权重大的分配到请求的概率大,权重(weight)默认值为1,
   		           权重越高,被分配的请求数量越多
                    #upstream指令可以定义一组服务器
                    upstream targetserver{	
                        server 192.168.200.201:8080 weight=2;
                        server 192.168.200.201:8081 weight=1;
                    }
   		3、ip_hash:依据ip分配方式,根据客户端请求的IP地址计算hash值,根据hash值来分发请求, 
   		           同一个IP发起的请求, 会发转发到同一个服务器上
   		          	upstream targetserver{	
   		          		ip_hash;
                        server 192.168.200.201:8080;
                        server 192.168.200.201:8081;
                    }
   		4、url_hash:依据url分配方式,根据客户端请求url的hash值,来分发请求, 同一个url请求, 会发转发到同
   		            一个服务器上
   		5、least_conn:依据最少连接方式,哪个服务器当前处理的连接少, 请求优先转发到这台服务器
   		6、fair:依据响应时间方式,优先把请求分发给处理请求时间短的服务器

五、部署项目

5.1、手动部署

1、开发项目
2、项目打包 mvn package
3、获取target目录下打好的包,如:demo-1.0-SNAPSHOT.jar
4、上传至linux指定目录:/root/app
5、运行:java -jar demo-1.0-SNAPSHOT.jar
   也可以后台运行,并指定输出日志文件名,默认输出到nohup.log
   nohup java -jar demo-1.0-SNAPSHOT.jar &>demo.log &
6、访问 http://192.168.136.162:8080/demo

5.2、自动化部署

1、安装maven、git
2、从git将代码clone指定位置:/root/app
	git clone http://git......
3、将写好的shell脚本上传至linux:/root/app
4、运行shell脚本
	sh project_demo_startup.sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=demo

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
ARR=($tpid)
tpid=${ARR[0]}
echo tpid=$tpid

if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`

if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

echo 准备从Git仓库拉取最新代码
cd /root/install/app/project_demo

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`

cd target

echo 启动项目
nohup java -jar demo.jar &> ../demo.log &
echo 项目启动完成

5.3、git免密登录

1、输入以下这句命令,询问全部回车
 ssh-keygen -t rsa -C "邮箱"
 如果忘了邮箱和用户名,可以在windows用如下命令查看当初设置的邮箱和密码
   git config user.name
   git config user.email

ssh-keygen -t rsa -C "[email protected]"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:tXWmY7AFmuHGWg0FMynR4RZB8sHdAimRSBieRaCfYLs [email protected]
    The key's randomart image is:
    +---[RSA 2048]----+
    |  o*+.+B&Xo.     |
    | o.o. +*=@o..    |
    |o.o    o@ +.o o  |
    |.o..   = . * +   |
    | .o   . S o +    |
    |  .        . .   |
    | E               |
    |                 |
    |                 |
    +----[SHA256]-----+
2、 进入公钥文件
	 cat /root/.ssh/id_rsa.pub
3、复制公钥
4、在git平台->个人头像设置->添加公钥
5、第一次可能还是需要用户名密码,之后不再需要(可能还需要重启机器)

六、Redis安装

6.1、linux安装

​ 下载地址:https://download.redis.io/releases/ 、https://redis.io/download

1、下载并上传至linux:/root/install/redis
2、解压: tar -zxvf redis-4.0.0.tar.gz
3. 安装Redis的依赖环境gcc,命令:yum install gcc-c++
4. 进入/usr/local/redis-4.0.0,进行编译,命令:make
5. 进入redis的src目录进行安装,命令:make install
6、运行redis server服务:redis-server,但是存在占用终端的情况
7、通过修改配置文件,设置Redis服务后台运行、设置密码、设置允许客户端远程连接Redis服务
	- Linux系统中Redis配置文件:REDIS_HOME/redis  ./redis-server  ./redis.conf
	- Windows系统中Redis配置文件:REDIS_HOME/redis.windows  ./redis-server ./redis.conf
	1)、设置Redis服务后台运行:daemonize = yes
	2)、关闭保护模式:protected-mode no
	2)、设置Redis服务密码:requirepass 你的密码
	3)、设置允许客户端远程连接Redis服务,Redis服务默认只能客户端本地连接,不允许客户端远程连接。如果指定了bind,则说明只允许来自指定网卡的Redis请求。如果没有指定,就说明可以接受来自任意一个网卡的Redis请求。将配置文件中的 bind 127.0.0.1 配置项注释掉,或者绑定上允许访问的ip:   bind ip1 ip2 ip3
	4)、之后启动server需要指定配置文件:redis-server ../redis.conf  
	注意:Redis配置文件中的配置项前面不能有空格,需要顶格写
	5)、任意目录redis-cli进行客户端连接

6.2、windows安装

​ 下载地址:https://github.com/tporadowski/redis/releases、https://github.com/MicrosoftArchive/redis/tags

1、下载并解压
2、修改配置文件 redis.windows-service.conf
	requirepass 你的密码
	bind ip1 ip2 ip3
3、设置开机自启
	redis-server --service-install redis.windows-service.conf --loglevel verbose
	redis-server --service-uninstall 
4、配置redis环境变量
5、任意目录redis-cli进行客户端连接

6.3、docker安装

#1、搜索redis镜像
docker search redis

#2、拉取redis镜像
docker pull redis:7.0

#3、创建容器,设置端口映射、目录映射、自动启动
docker run -id --name=redis7.0 --restart=always -p 6380:6379 redis:7.0

#4、使用外部机器连接redis
redis-cli -h 192.168.200.161 -p 6379

七、ElasticSearch安装

​ 官网地址:https://www.elastic.co/cn/elasticsearch/
​ 官网下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

7.1、linux安装

1、上传安装包

alt+p # 打开sftp窗口
# 上传es安装包
put e:/software/elasticsearch-7.4.0-linux-x86_64.tar.gz

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4zpHCGST-1679069175423)(.\assets\1574607430115.png)]

2、解压

 # 将elasticsearch-7.4.0-linux-x86_64.tar.gz解压到opt文件夹下. -C 大写
 tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz  -C /opt

3、创建普通用户

因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令:

groupadd elsearch
useradd itheima -g elsearch # 新增itheima用户,并且设置所属组
passwd  itheima  # 为itheima用户设置密码groupadd elsearch
useradd itheima -g elsearch -p itheima  #一步设置用户组和密码

4、为新用户授权,如下图

chown -R itheima:itheima /opt/elasticsearch-7.4.0 #文件夹所有者

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sE0VTDmN-1679069175424)(.\assets\1574607864042.png)]

将 /opt/elasticsearch-7.4.0文件夹授权给itheima用户,由上图可见,我们的文件夹权限赋给了itheima

5、修改elasticsearch.yml文件

vim /opt/elasticsearch-7.4.0/config/elasticsearch.yml 
# ======================== Elasticsearch Configuration =========================
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

​ cluster.name:配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称

​ node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理

​ network.host:设置为0.0.0.0允许外网访问

​ http.port:Elasticsearch的http访问端口

​ cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master

6、修改配置文件

​ 新创建的itheima用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件, 添加

​ 类似如下内容

# 切换到root用户
su root 

#1. ===最大可创建文件数太小=======
vim /etc/security/limits.conf 
# 在文件末尾中增加下面内容
itheima soft nofile 65536
itheima hard nofile 65536
# =====
vim /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
itheima soft nofile 65536
itheima hard nofile 65536
*  hard    nproc     4096
# 注:* 代表Linux所有用户名称	

#2. ===最大虚拟内存太小=======
vim /etc/sysctl.conf
# 在文件中增加下面内容
vm.max_map_count=655360
# 重新加载,输入下面命令:
sysctl -p

7、启动elasticsearch

su itheima  # 切换到itheima用户启动
cd /opt/elasticsearch-7.4.0/bin
./elasticsearch #启动

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cLu7iqOh-1679069175425)(.\assets\1574609255103.png)]

通过上图我们可以看到elasticsearch已经成功启动

8、访问elasticsearch

在访问elasticsearch前,请确保防火墙是关闭的,执行命令:

#暂时关闭防火墙
systemctl  stop  firewalld
# 或者
#永久设置防火墙状态
systemctl enable firewalld.service  #打开防火墙永久性生效,重启后不会复原 
systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原 

浏览器输入http://192.168.149.135:9200/,如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3uRZh5IU-1679069175425)(.\assets\1574609539550.png)]

此时elasticsearch已成功启动:

重点几个关注下即可:
number" : "7.4.0"   表示elasticsearch版本
lucene_version" : "8.2.0"  表示lucene版本
name : 默认启动的时候指定了 ES 实例名称
cluster_name : 默认名为 elasticsearch

7.2、windows安装

1). 解压缩:elasticsearch-7.14.0-windows-x86_64.zip,放到软件安装目录
2). 编辑 config/elasticsearch.yml
    cluster.name: my-application
    node.name: node-1
    network.host: 0.0.0.0
    http.port: 9200
    cluster.initial_master_nodes: ["node-1"]
3). 启动&访问:
	双击:bin/elasticsearch.bat
	访问:http://localhost:9200
4). 查看elastic是否启动
	ps -ef|grep elastic

7.3、 docker安装

1、需要让es和kibana容器互联。这里先创建一个网络: docker network create es-net
2、加载镜像:docker load -i es.tar,也可以自行pull
3、创建容器:
	docker run -d --name es \
   	 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
   	 -e "discovery.type=single-node" \							#监听的地址,可以外网访问
   	 -v es-data:/usr/share/elasticsearch/data \
   	 -v es-plugins:/usr/share/elasticsearch/plugins \
  	  --privileged \
   	 --network es-net \
   	 --restart=always
   	 -p 9200:9200 \
   	 -p 9300:9300 \
    elasticsearch:7.12.1
4、在浏览器中输入:http://192.168.136.161:9200 即可看到elasticsearch的响应结果:

7.4、Kibana安装

​ 官网地址:https://www.elastic.co/cn/elasticsearch/
​ 官网下载地址:https://www.elastic.co/cn/downloads/past-releases#kibana 注意:下载es对应版本zip包

7.4.1、linux安装

1、什么是Kibana

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。

2、上传kibana

put ‪E:\software\kibana-7.4.0-linux-x86_64.tar.gz

3、解压kibana

tar -zxvf kibana-7.4.0-linux-x86_64.tar.gz -C /opt

4、修改kibana配置

vim /opt/kibana-7.4.0-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
server.name: "kibana-itcast"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
elasticsearch.requestTimeout: 99999
server.port:http访问端口
​server.host:ip地址,0.0.0.0表示可远程访问
​server.name:kibana服务名
​elasticsearch.hosts:elasticsearch地址
​elasticsearch.requestTimeout:请求elasticsearch超时时间,默认为30000,此处可根据情况设置
**5、启动kibana**

​ 由于kibana不建议使用root用户启动,如果用root启动,需要加–allow-root参数

# 切换到kibana的bin目录
cd /opt/kibana-7.4.0-linux-x86_64/bin
# 启动
./kibana --allow-root

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rW3SD85p-1679069175426)(.\assets\1574610511959.png)]

6、访问kibana

​ 浏览器输入http://192.168.149.135:5601/,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7HGjRwE2-1679069175427)(.\assets\1574610669598.png)]

​ 看到这个界面,说明Kibanan已成功安装。

 `Discover`:可视化查询分析器
	`Visualize`:统计分析图表
 	`Dashboard`:自定义主面板(添加图表)
 	`Timelion`:Timelion是一个kibana时间序列展示组件(暂时不用)
	`Dev Tools`:Console控制台(同CURL/POSTER,操作ES代码工具,代码提示,很方便)
	`Management`:管理索引库(index)、已保存的搜索和可视化结果(save objects)、设置 kibana 服务器属性。
7.4.2、windows安装
1. 解压缩:kibana-7.14.0-windows-x86_64.zip,放到软件安装目录
2. 编辑 config/kibana.yml
    server.port: 5601
    server.host: "0.0.0.0"
    server.name: "kibana-itcast"
    elasticsearch.hosts: ["http://127.0.0.1:9200"]
    elasticsearch.requestTimeout: 99999
3. 启动&访问:
	双击:bin/kibana.bat
	访问:http://localhost:5601
4、后台启动方式
	nohup ./kibana --allow-root&
7.4.3、docker安装
1、导入镜像:docker load -i kibana.tar,或者自行pull
2、运行容器
	docker run -d \
        --name kibana \
        -e ELASTICSEARCH_HOSTS=http://es:9200 \
        --network=es-net \
        --restart=always
        -p 5601:5601  \
    kibana:7.12.1
3、kibana一般启动比较慢,查看日志:docker logs -f kibana
4、在浏览器输入地址访问:http://192.168.136.161:5601,即可看到结果

7.5、head安装

head插件是ES的一个可视化管理插件,用来监视ES的状态,并通过head客户端和ES服务进行交互,比如创建映射、创建索引等。在登陆和访问head插件地址和ElasticSearch前需要事先在服务器上安装和配置好ElasticSearch以及head插件。安装完后,默认head插件的web端口为9100,ElasticSearch服务的端口为9200,使用浏览器访问head地址,如[http://IP地址:9100/](http://10.82.25.183:9100/),推荐使用Chrome浏览器,head插件对Chrome浏览器兼容更佳。进入head页面后将ElasticSearch连接输入框中填写正确的ElasticSearch服务地址,就可以监控ElasticSearch运行信息
7.5.1、 Node安装

1、什么是Node

简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。

2、下载Node

由于elasticsearch-head插件是由nodejs语言编写,所以安装elasticsearch-head前需要先安装nodejs。
首先,执行以下命令安装nodejs和grunt

打开虚拟机,执行wget命令下载Node,如下图:

wget https://nodejs.org/dist/v10.15.2/node-v10.15.2-linux-x64.tar.xz

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6vGeXVvE-1679069175428)(.\assets\1571160484991.png)]

3)解压Node包

tar xvf node-v10.15.2-linux-x64.tar.xz

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DgbvO7MU-1679069175429)(.\assets\1571160606899.png)]

4)设置软连接

解压文件的 bin 目录底下包含了 node、npm 等命令,我们可以使用 ln 命令来设置软连接:

 ln -s bin/npm /usr/local/bin/
 ln -s bin/node /usr/local/bin/

在/etc/profile中配置好path环境变量

vi ~/.bash_profile
export NODE_HOME=/opt/nodejs/node-v10.15.2-linux-x64
export PATH=$PATH:$NODE_HOME/bin

保存退出,使文件生效

source ~/.bash_profile

查看node安装版本,执行 node -v 验证安装如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0xNoeb4B-1679069175429)(.\assets\1571160954958.png)]

7.5.2、 grunt安装

安装grunt(运行在Node.js上面的任务管理器(task runner)),为了获得Grunt的更多产品特性,需要全局安装Grunt’s 命令行接口(CLI),使用npm进行安装,如下:

npm install -g grunt-cli

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5O72T9Tb-1679069175430)(.\assets\1571161497433.png)]

查看grunt版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GYE138fZ-1679069175430)(.\assets\1571161600969.png)]

输出grunt版本信息,表示安装成功。

7.5.3、 head安装
7.5.3.1、客户端浏览器安装

将ElasticSearch Head-0.1.5_0.zip 解压且在浏览器以扩展程序的方式进行安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJebEr6d-1679069175430)(.\assets\image-20210815135605622.png)]

7.5.3.2、服务器安装

1、执行命令安装git

git yum install git -y

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lZIXJNde-1679069175431)(.\assets\1571161083235.png)]

2、切换到/opt目录下,执行下面的克隆命令

git clone git://github.com/mobz/elasticsearch-head.git

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5xrHL9dn-1679069175432)(.\assets\1571193736229.png)]

3、进入到elasticsearch-head目录

cd elasticsearch-head

4、运行

​ 在运行之前我们需要修改下elasticsearch.yml,因为ES默认不开启跨域访问,需要添加以下配置:

#开启cors跨域访问支持,默认为false 
http.cors.enabled: true
#跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: "*"

​ 然后开始执行运行命令:

npm run start

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wBAj17cZ-1679069175432)(.\assets\1571163304853.png)]

5、访问head

浏览器输入ip:port:9100,如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hEjP0Nc6-1679069175433)(.\assets\1571163462191.png)]

看到这个界面说明我们的head插件成功安装并且成功连接Elasticsearch。

7.6、 IK分词器安装

​ IK分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases 注意:下载es对应版本zip包

​ Elasticsearch 要使用 ik,就要先构建 ik 的 jar包,这里要用到 maven 包管理工具,而 maven 需要java 环境

​ Elasticsearch 内置了jdk, 所以可以将JAVA_HOME设置为Elasticsearch 内置的jdk

7.6.1、环境装备

1)设置JAVA_HOME

vim /etc/profile
# 在profile文件末尾添加
#java environment
export JAVA_HOME=/opt/elasticsearch-7.4.0/jdk
export PATH=$PATH:${JAVA_HOME}/bin
# 保存退出后,重新加载profile
source /etc/profile

2)下载maven安装包

wget http://mirror.cc.columbia.edu/pub/software/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz  

3)解压maven安装包

tar xzf apache-maven-3.1.1-bin.tar.gz 

4)设置软连接

ln -s apache-maven-3.1.1 maven 

5)设置path

打开文件

 vim  /etc/profile.d/maven.sh

将下面的内容复制到文件,保存

export MAVEN_HOME=/opt/maven  
export PATH=${MAVEN_HOME}/bin:${PATH} 

设置好Maven的路径之后,需要运行下面的命令使其生效

source /etc/profile.d/maven.sh

6)验证maven是否安装成功

mvn -v
7.6.2、安装IK分词器

1)下载IK

wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip

2)解压IK

由于这里是zip包不是gz包,所以我们需要使用unzip命令进行解压,如果本机环境没有安装unzip,请执行:

yum install zip yum install unzip

解压IK

unzip v7.4.0.zip

3)编译jar包

# 切换到 elasticsearch-analysis-ik-7.4.0目录cd elasticsearch-analysis-ik-7.4.0/
#打包
mvn package

4) jar包移动

package执行完毕后会在当前目录下生成target/releases目录,将其中的elasticsearch-analysis-ik-7.4.0.zip。拷贝到elasticsearch目录下的新建的目录plugins/analysis-ik,并解压

#切换目录
cd /opt/elasticsearch-7.4.0/plugins
/#新建目录
mkdir analysis-ikcd analysis-ik
#执行拷贝
cp -R /opt/elasticsearch-analysis-ik-7.4.0/target/releases/elasticsearch-analysis-ik-7.4.0.zip     /opt/elasticsearch-7.4.0/plugins/analysis-ik
#执行解压
unzip  /opt/elasticsearch-7.4.0/plugins/analysis-ik/elasticsearch-analysis-ik-7.4.0.zip

以下为导师目录操作命令
#切换目录
cd /root/sys-centos/elasticsearch/elasticsearch-7.4.0/plugins
/#新建目录
mkdir analysis-ikcd analysis-ik
#执行拷贝
cp -R /root/sys-centos/elasticsearch/elasticsearch-analysis-ik-7.4.0/target/releases/elasticsearch-analysis-ik-7.4.0.zip     /root/sys-centos/elasticsearch/elasticsearch-7.4.0/plugins/analysis-ik
#执行解压
unzip /root/sys-centos/elasticsearch/elasticsearch-7.4.0/plugins/analysis-ik/elasticsearch-analysis-ik-7.4.0.zip

5)拷贝辞典

将elasticsearch-analysis-ik-7.4.0目录下的config目录中的所有文件 拷贝到elasticsearch的config目录

cp -R /opt/elasticsearch-analysis-ik-7.4.0/config/*   /opt/elasticsearch-7.4.0/config

以下为导师目录操作命令
cp -R /root/sys-centos/elasticsearch/elasticsearch-analysis-ik-7.4.0/config/*   /root/sys-centos/elasticsearch/elasticsearch-7.4.0/config

记得一定要重启Elasticsearch!!!

6)、windows安装

直接解压ik分词器zip包,重命名为ik,然后放入es的plugin目录,最后重启es即可。

7)、docker安装

根据 docker volume inspect es-plugins 命令找到当初创建容器挂载的插件数据卷所在位置,把加压好的ik插件文件夹上传至该目录,最后重启es即可

7.6.3、使用IK分词器

IK分词器有两种分词模式:ik_max_word和ik_smart模式。

1、ik_max_word

会将文本做最细粒度的拆分,比如会将“乒乓球明年总冠军”拆分为“乒乓球、乒乓、球、明年、总冠军、冠军。

#方式一ik_max_word
GET /_analyze
{  
    "analyzer": "ik_max_word",
    "text": "乒乓球明年总冠军"
}

ik_max_word分词器执行如下:

{
	"tokens": [{
		"token": "乒乓球",
		"start_offset": 0,
		"end_offset": 3,
		"type": "CN_WORD",
		"position": 0
	}, {
		"token": "乒乓",
		"start_offset": 0,
		"end_offset": 2,
		"type": "CN_WORD",
		"position": 1
	}, {
		"token": "球",
		"start_offset": 2,
		"end_offset": 3,
		"type": "CN_CHAR",
		"position": 2
	}, {
		"token": "明年",
		"start_offset": 3,
		"end_offset": 5,
		"type": "CN_WORD",
		"position": 3
	}, {
		"token": "总冠军",
		"start_offset": 5,
		"end_offset": 8,
		"type": "CN_WORD",
		"position": 4
	}, {
		"token": "冠军",
		"start_offset": 6,
		"end_offset": 8,
		"type": "CN_WORD",
		"position": 5
	}]
}

2、ik_smart
会做最粗粒度的拆分,比如会将“乒乓球明年总冠军”拆分为乒乓球、明年、总冠军。

#方式二ik_smart 

GET /_analyze
{ 
    "analyzer": "ik_smart",  
    "text": "乒乓球明年总冠军"
}

ik_smart分词器执行如下:

{
	"tokens": [{
		"token": "乒乓球",
		"start_offset": 0,
		"end_offset": 3,
		"type": "CN_WORD",
		"position": 0
	}, {
		"token": "明年",
		"start_offset": 3,
		"end_offset": 5,
		"type": "CN_WORD",
		"position": 1
	}, {
		"token": "总冠军",
		"start_offset": 5,
		"end_offset": 8,
		"type": "CN_WORD",
		"position": 2
	}]
}

由此可见 使用ik_smart可以将文本"text": "乒乓球明年总冠军"分成了【乒乓球】【明年】【总冠军】

这样看的话,这样的分词效果达到了我们的要求。

7.6.4、IK分词器词库拓展与停用

在IK分词器config目录,有个文件叫:IKAnalyzer.cfg.xml


DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
        <comment>IK Analyzer 扩展配置comment>
        
        <entry key="ext_dict">ext.dicentry>
    	 
        <entry key="ext_stopwords">stopword.dicentry>
properties>
1、词库拓展
   在ext.dit文件中添加需要拓展的词汇,注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑
2、词库停用
   在stopword.dit文件中添加需要拓展的词汇,注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑
3、重启ES让操作生效

7.7、拼音分词器安装

​ 下载地址:https://github.com/medcl/elasticsearch-analysis-pinyin/releases 注意:下载es对应版本zip包

八、Docker安装

8. 0、介绍

1、Docker官网:https://www.docker.com
2、Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,    支持周期 24 个月。
3、Docker CE 分为 `stable` `test``nightly` 三个更新频道。
4、官方网站上有各种环境下的 [安装指南](https://docs.docker.com/install/),这里主要介绍 Docker CE 在    CentOS上的安装。
5、Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我    们在CentOS 7安装Docker

8.1、卸载(可选)

# 如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-selinux \
    docker-engine-selinux \
    docker-engine \
    docker-ce

8.2、安装

# 1、yum 包更新到最新 
yum -y update
# 2、安装需要的软件包,yum-utils提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum makecache fast
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v

8.3、配置镜像加速器

默认情况下,拉取镜像时将会从docker hub(https://hub.docker.com/)上下载 ,而国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务。

由于阿里云镜像加速器为用户特有,速度快且稳定,一般会用阿里云的镜像加速器,使用步骤:
注册阿里云账号->工作台->容器镜像服务->镜像工具->镜像加速器(yz1nevhk)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://yz1nevhk.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

#验证:
方式一:cat /etc/docker/daemon.json
方式二:docker info

8.4、docker相关指令

1、镜像操作
    0)、搜索:docker search 镜像名称
    1)、拉取:docker pull
    2)、推送:docker push
    3)、查看:docker images
    4)、查看所有镜像ID:docker images -q
    5)、删除:docker rmi 镜像名称
    6)、删除所有:docker rmi `docker images -q`
    7)、制作镜像:docker build . 
    8)、导出镜像:docker save -o 镜像名称.tar 镜像名称
    9)、加载镜像:docker load -i 镜像名称.tar
    10)、容器转为镜像:docker commit 容器名称 镜像名称

2、容器操作
    1)、查看所有:docker ps -a
    2)、查看正在运行:docker ps
    3)、删除:docker rm 容器名称
    4)、强制删除:docker rm -f 容器名称
    5)、创建容器:docker create -d --name=容器名称 -p 宿主机端口:容器内端口 镜像名称
    6)、创建并运行容器:docker run -d --name=容器名称 -p 宿主机端口:容器内端口 镜像名称
    7)、启动容器:docker start 容器名称
    8)、停止容器:docker stop 容器名称
    9)、重启容器:docker restart 容器名称
    10)、暂停容器:docker pause 容器名称
    12)、恢复容器:docker unpause 容器名称
    13)、进入容器:docker exec -it 容器名称 /bin/bash
    14)、查看容器信息:docker inspect 容器名称或者容器id
    15)、创建容器相关设置
    	 1)、自启动: --restart=always
    	 2)、挂载数据卷: -v es-data:/usr/share/elasticsearch/data
    	 3)、创建网络: docker network create es-net
    	 4)、加入网络:--network es-net
    	 5)、端口映射: -p 宿主机端口:容器内端口
    16)、修改容器设置语法
    	 docker update 相关设置 容器ID
         如:修改容器不再自启动:docker update --restart=no 容器ID  

3、数据卷操作
    1)、创建数据卷:docker volume create 数据卷名称  (位于/var/lib/docker/volume目录)
    2)、查看单个数据卷详情:docker volume inspect 数据卷名称
    3)、查看数据卷列表:docker volume ls
    4)、删除数据卷:docker volume rm 数据卷名称
    5)、删除未使用的数据卷:docker volume prune
    6)、创建容器时挂载数据卷
    	1)、挂载数据卷(会自动创建数据卷):docker run -v 数据卷名称:容器内目录路径
    	2)、挂载指定目录(要自己创建):docker run -v 目录绝对路径:容器内目录路径

8.5、dockerfile自定义镜像

1、Dockerfile的本质是一个文件,通过指令描述镜像的构建过程

2、Dockerfile的第一行必须是FROM,从一个基础镜像来构建

3、基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine

构建自定义的镜像时,并不需要一个个文件去拷贝,打包。

我们只需要告诉Docker,我们的镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要安装什么依赖、启动脚本是什么,将来Docker会帮助我们构建镜像。

而描述上述信息的文件就是Dockerfile文件。

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oWNJdslW-1679069175433)(.\assets\image-20210731180321133.png)]

更新详细语法说明,参考官网文档: https://docs.docker.com/engine/reference/builder

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AEEmb3Zf-1679069175433)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220612143055337.png)]

1、dockerfile自定义java镜像:
    1、新建一个空文件夹docker-demo
    2、拷贝通过idea打包好的docker-demo.jar文件到docker-demo这个目录
    3、拷贝jdk8.tar.gz文件到docker-demo这个目录
    4、拷贝Dockerfile到docker-demo这个目录
    5、运行docker构建镜像命令: docker build -t javaweb:1.0 .(点表示当前目录的dockerfile文件)
      					     docker build -f ./centos_dockerfile -t itheima_centos:1 .
    6、最后访问:http://虚拟机ip:8090/hello/count

8.6、安装DockerCompose

​ 一、介绍

1、Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!相当于
   批量的docker run
2、首先Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。格式如下:
   version: "3.8"
     services:
      # 典型定义容器运行方式一:基于已有镜像构建容器
      mysql:
        image: mysql:5.7.25
        environment:
         MYSQL_ROOT_PASSWORD: 123 
        volumes:
         - "/tmp/mysql/data:/var/lib/mysql"
         - "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"
	  # 典型定义容器运行方式二:基于dockerfile临时构建镜像,然后起容器
      web:
        build: .
        ports:
         - "8090:8090"
   上面的Compose文件就描述一个项目,其中包含两个容器:
        - mysql:一个基于`mysql:5.7.25`镜像构建的容器,并且挂载了两个目录
        - web:一个基于`docker build`临时构建的镜像容器,映射端口时8090
3、定义好docker-compose文件后,只需要在该文件的当前目录运行命令即可完成应用的快速部署:
	docker-compose up -d
4、DockerCompose的详细语法参考官网:https://docs.docker.com/compose/compose-file/	
5、可以将DockerCompose文件看做是将多个docker run命令写到一个文件,只是语法稍有差异。

​ 二、安装

1、方式一:linux通过命令下载:
	# 安装
  curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname
  -s`-`uname -m` > /usr/local/bin/docker-compose
2、方式二:直接将docker-compose文件上传至linux目录
	/usr/local/bin/
3、修改docker-compose文件权限,添加执行权限
  chmod +x /usr/local/bin/docker-compose
4、下载Base自动补全命令:
  # 补全命令
  curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/
  docker-compose > /etc/bash_completion.d/docker-compose
  如果下载无反应或者报错执行(原因为无法解析该域名,可以添加域名解析映射):
  echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts

8.7、DockerCompose部署微服务

1、将cloud-demo目录上传至linux,目录结构:
   cloud-dmo
	 gateway 
	 	app.jar  : gateway微服务打包后形成的jar
		Dockerfile  :  gateway微服务的dokerfile
     order-service  
		app.jar  :  order-service微服务打包后形成的jar
		Dockerfile  : order-service微服务的dokerfile
     user-service  
		app.jar  : user-service微服务打包后形成的jar
		Dockerfile  :   user-service微服务的dokerfile
     mysql	:  用来构建mysql容器时进行数据卷挂载
		conf : mysql的配置文件
		data : mysql数据库数据
     docker-compose.yml :docker-compose文件
   其中微服务配置文件中的连接信息可以用dockercmpose文件中的容器名

2、docker-compose.yml说明
    version: "3.2"
    services:
      #容器名
      nacos:
        image: nacos/nacos-server
        environment:
          MODE: standalone
        ports:
          - "8848:8848"
      mysql:
        image: mysql:5.7.25
        environment:
          MYSQL_ROOT_PASSWORD: 123
        volumes:
          - "$PWD/mysql/data:/var/lib/mysql"
          - "$PWD/mysql/conf:/etc/mysql/conf.d/"
      userservice:
        build: ./user-service
      orderservice:
        build: ./order-service
      gateway:
        build: ./gateway
        ports:
          - "10010:10010"

3、在docker-compose.yml所在目录执行命令
   docker-compose up -d
4、查看各个容器运行情况
   docker-compose logs -f 容器名
5、注意:由于nacos启动速度较慢,三个微服务启动的时候,nacos尚未启动,所以在nacos启动完成后,三个微服务还
   需要进行重启
   docker-compose restart gateway userservice orderservice
6、启动没有问题访问网关(网关端口:10010)
   http://192.168.200.161:10010/order/101?authorization=admin

8.8、搭建Docker镜像私服

​ 搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。

官网地址:https://hub.docker.com/_/registry

1、 简化版镜像仓库
    Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,但是没有图形化
    界面,搭建方式比较简单,命令如下:
    1)、拉取镜像: docker pull registry
    2)、启动私有仓库容器 	
        docker run -d \
        --restart=always \
        --name registry	\
        -p 5000:5000 \
        -v registry-data:/var/lib/registry \
        registry
    
    命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。
    访问http://YourIp:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像
    
2、 带有图形化界面版本
	使用DockerCompose部署带有图象界面的DockerRegistry,命令如下:
	version: '3.0'
    services:
      registry:
        image: registry
        volumes:
          - ./registry-data:/var/lib/registry
      ui:
        image: joxit/docker-registry-ui:static
        ports:
          - 8000:80
        environment:
          - REGISTRY_TITLE=你自己的私有仓库
          - REGISTRY_URL=http://registry:5000
        depends_on:
          - registry
          
3、配置Docker信任地址
   此步骤用于让 docker 信任私有仓库地址,私服采用的是http协议,默认不被Docker信任,所以需要做一个配置:
      # 打开要修改的文件
      vi /etc/docker/daemon.json
      # 添加内容:
      "insecure-registries":["http://192.168.200.161:8000"]
      # 重加载
      systemctl daemon-reload
      # 重启docker
      systemctl restart docker
      # 启动镜像容器
      docker-compose start registry ui
      
4、推送、拉取镜像
	推送镜像到私有镜像服务必须先tag,步骤如下:
	1)、重新tag本地镜像,名称前缀为私有仓库的地址 : 192.168.200.161:8000/
 		docker tag redis:7.0 192.168.200.161:8000/redis:1.0
 	2)、推送镜像
 		docker push 192.168.200.161:8000/redis:1.0 
 	3)、拉取镜像
 		docker pull 192.168.200.161:8000/redis:1.0 

九、注册中心安装

9.1、Consul

1、介绍
    官网地址: https://www.consul.io  
    Consul 是由 HashiCorp 基于 Go 语言开发的,支持多数据中心,分布式高可用的服务发布和注册服务软件。
    • 用于实现分布式系统的服务发现与配置。
    • 使用起来也较为简单。具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,
      方便部署 。
2、启动
	dev模式:不会持久化数据
	   consul agent -dev
    server模式:持久化数据
       consul agent -server -ui -bootstrap-expect 1 -data-dir D:\consul\data -node=n1 -bind=127.0.0.1
3、访问控制台
	localhost:8500

9.2、Nacos

1、介绍
    Nacos(Dynamic Naming and Configuration Service) 是阿里巴巴2018年7月开源的项目。
    • 官网:https://nacos.io/
    • 下载地址: https://github.com/alibaba/nacos/releases
    • 它专注于服务发现和配置管理领域 致力于帮助您发现、配置和管理微服务。Nacos 支持几乎所有主流类型的“服
    务”的发现、配置和管理。
    • 一句话概括就是 Nacos = Spring Cloud注册中心 + Spring Cloud配置中心。
2、启动(standalone模式:单机)
	startup -m standalone
3、访问控制台
	localhost:8848/nacos
	用户名:nacos  密码:nacos

9.3、Eureka

1、Eureka server端为注册中心
2、Eureka client端为服务提供方、服务消费方

十、Sentenel

十一、Jmeter

11.1安装Jmeter

​ Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。

11.1.1、下载

​ 可以Apache Jmeter官网下载,地址:http://jmeter.apache.org/download_jmeter.cgi

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aLUPRWvs-1679069175434)(.\assets\image-20210715193149837.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ikiRbMF0-1679069175434)(.\assets\image-20210715193224094.png)]

11.1.2 、解压

​ 因为下载的是zip包,解压缩即可使用,目录结构如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XdeWFy5t-1679069175434)(.\assets\image-20210715193334367.png)]

其中的bin目录就是执行的脚本,其中包含启动脚本:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oESwBkHs-1679069175435)(.\assets\image-20210715193414601.png)]

11.1.3 、运行

双击即可运行,但是有两点注意:

  • 启动速度比较慢,要耐心等待
  • 启动后黑窗口不能关闭,否则Jmeter也跟着关闭了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YNcWK9if-1679069175435)(.\assets\image-20210715193730096.png)]

11.2、快速入门

11.2.1 、设置中文语言

默认Jmeter的语言是英文,需要设置:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kUNwnwoX-1679069175435)(.\assets\image-20210715193838719.png)]

效果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ssTl4cHS-1679069175436)(.\assets\image-20210715193914039.png)]

注意:上面的配置只能保证本次运行是中文,如果要永久中文,需要修改Jmeter的配置文件

打开jmeter文件夹,在bin目录中找到 jmeter.properties,添加下面配置:

language=zh_CN

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-483HBVdW-1679069175436)(.\assets\image-20210715194137982.png)]

注意:前面不要出现#,#代表注释,另外这里是下划线,不是中划线

11.2.2、基本用法

​ 1、在测试计划上点鼠标右键,选择添加 > 线程(用户) > 线程组:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fDmpP0QI-1679069175436)(.\assets\image-20210715194413178.png)]

​ 2、在新增的线程组中,填写线程信息:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-40Ht7xFP-1679069175437)(.\assets\image-20210715195053807.png)]

3、给线程组点鼠标右键,添加http取样器:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vS7RbWoV-1679069175437)(.\assets\image-20210715195144130.png)]

4、编写取样器内容:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3yUdPg6F-1679069175438)(.\assets\image-20210715195410764.png)]

5、添加监听报告:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LRRanSgv-1679069175438)(.\assets\image-20210715195844978.png)]

6、添加监听结果树:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SzU1podO-1679069175438)(.\assets\image-20210715200155537.png)]

7、汇总报告结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gvSlsoia-1679069175438)(.\assets\image-20210715200243194.png)]

8、结果树:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0hUheK4H-1679069175439)(.\assets\image-20210715200336526.png)]

十二、Rabbitmq安装

官方的安装指南地址为 : https://blog.rabbitmq.com/posts/2015/04/scheduling-messages-with-rabbitmq

12.1 windows安装

​ 下载地址:https://www.rabbitmq.com/download.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p9mMAitb-1679069175439)(.\assets\image-20220321001745164.png)]

12.1.1 安装Erlang

下载地址:https://www.erlang.org/downloads

1、下载对应版本的Erlang , 如rabbitmq 3.8.14 对应的erlang最佳版本为 : erlang 23

2、配置环境变量,cmd 下命令:erl 可测试erlang版本

12.1.2 安装rabbitmq

下载地址:https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.14

官方的安装指南地址为:https://blog.rabbitmq.com/posts/2015/04/scheduling-messages-with-rabbitmq

准备工作:

​ 1、删除 C:\Users\Administrator\AppData\Roaming\RabbitMQ 目录;

​ 2、Administrator下的.erlang.cookie拷贝至 C:\Windows\System32\config\systemprofile目录

​ 3、删除注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Ericsson 下的 Erlang

​ 4、rabbitmq-server-3.8.14.exe 双击安装即可

​ 5、安装控制台等插件 cmd下命令:rabbitmq-plugins enable rabbitmq_management

​ 出现以下界面,则开启成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kxaJPUP1-1679069175439)(.\assets\image-20220321002859792.png)]

6、访问:localhost:15672 添加自定义用户

7、下载延时插件并放入rabbitmq 的 plugins目录

​ RabbitMQ有一个官方的插件社区,地址为:https://www.rabbitmq.com/community-plugins.html

​ 其中包含各种各样的插件,包括我们要使用的DelayExchange插件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iq0MFU4B-1679069175440)(assets/image-20210713104511055.png)]

​ 如:GitHub页面下载3.8.9版本的插件(对应RabbitMQ的3.8.5以上版本),地址为:

​ https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/tag/3.8.9。

​ 插件名字:rabbitmq-delayed-message-exchange-3.8.9-0199d11c.ez

​ 安装插件, cmd下命令:rabbitmq-plugins enable rabbitmq_delayed_message_exchange

8、services.msc 检查rabbitmq服务是否正常开启

9、补充:

重装完成后若RabbitMQ service未安装则:
    通过:rabbitmq-service install 安装service;
 	通过:rabbitmq-service start 启动service
	通过:rabbitmq-plugins enable rabbitmq_management 启动插件
	通过:rabbitmq-plugins enable rabbitmq_delayed_message_exchange 开启延时消息插件
如果服务列表没有rabbitmq,则
	通过:rabbitmq-service.bat install 来注册服务
后台启动rabbitmq-server:rabbitmq-server -detached 

12.2 linux安装

​ linux安装 https://blog.csdn.net/koponbs/article/details/110094811

12.3 docker安装

1、下载镜像 : docker pull rabbitmq:3.8-management
2、或者下载好镜像后,直接load:  docker load -i mq.tar
3、执行命令运行MQ容器:
	docker run \
         -e RABBITMQ_DEFAULT_USER=itcast \
         -e RABBITMQ_DEFAULT_PASS=123321 \
         -v mq-plugins:/plugins \
         --name mq \
         --hostname mq \
         -p 15672:15672 \
         -p 5672:5672 \
         -d \
    rabbitmq:3-management
4、延时插件下载后放置在数据卷下:mq-plugins
	1)、查看数据卷对应的目录位置:docker volume inspect mq-plugins
	2)、进入容器内部:docker exec -it mq bash 
	3)、开启延时插件:rabbitmq-plugins enable rabbitmq_delayed_message_exchange

十三、xxl-job安装

​ 源码地址:https://gitee.com/xuxueli0323/xxl-job

​ 文档地址:https://www.xuxueli.com/xxl-job/

13.1、windows环境搭建

1、下载项目源码并解压,获取 “调度数据库初始化SQL脚本” 并执行即可。
	位置:`/xxl-job/doc/db/tables_xxl_job.sql`  共8张表
    - xxl_job_lock:任务调度锁表;
    - xxl_job_group:执行器信息表,维护任务执行器信息;
    - xxl_job_info:调度扩展信息表: 用于保存XXL-JOB调度任务的扩展信息,如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等;
    - xxl_job_log:调度日志表: 用于保存XXL-JOB任务调度的历史信息,如调度结果、执行结果、调度入参、调度机器和执行器等等;
    - xxl_job_logglue:任务GLUE日志:用于保存GLUE更新历史,用于支持GLUE的版本回溯功能;
    - xxl_job_registry:执行器注册表,维护在线的执行器和调度中心机器地址信息;
    - xxl_job_user:系统用户表;
调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例;
如果mysql做主从,调度中心集群节点务必强制走主库;
2、解压源码,按照maven格式将源码导入IDE, 修改xxl-job-admin的数据库密码
3、启动类启动项目,访问路径:localhost:8080/xxl-job-admin
   默认登录账号 “admin/123456”

13.2、docker环境搭建

1、创建mysql容器,初始化xxl-job的SQL脚本
    docker run -p 3306:3306 --name mysql57 \
    -v /opt/mysql/conf:/etc/mysql \
    -v /opt/mysql/logs:/var/log/mysql \
    -v /opt/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7
2、拉取xxl-job镜像:docker pull xuxueli/xxl-job-admin:2.3.0
3、创建容器
    docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.200.130:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 \
    --spring.datasource.username=root \
    --spring.datasource.password=root" \
    -p 8888:8080 -v /tmp:/data/applogs \
	--name xxl-job-admin --restart=always  -d xuxueli/xxl-job-admin:2.3.0

十四、Jenkins安装

Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。官网: http://jenkins-ci.org/。

14.1、linux安装

0、安装JDK (验证:java -version)
1.1、采用YUM方式安装
	1)、加入jenkins安装源:
		sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate

	    sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
	2)、执行yum命令安装:yum -y install jenkins
	3)、卸载
		#1、卸载
			sudo yum remove jenkins
		#2、彻底删除残留文件:
			find / -iname jenkins | xargs -n 1000 rm -rf
1.2、采用RPM安装包方式
	1)、Jenkins安装包下载地址:https://pkg.jenkins.io/redhat-stable/
		wget https://pkg.jenkins.io/redhat-stable/jenkins-2.190.1-1.1.noarch.rpm
	2)、执行安装:
		rpm -ivh jenkins-2.190.1-1.1.noarch.rpm
	3)、卸载
		#1、卸载
			rpm -e jenkins
		#2、检查是否卸载成功
        	rpm -ql jenkins
		#2、彻底删除残留文件:
			find / -iname jenkins | xargs -n 1000 rm -rf
2、修改配置文件:
		vi /etc/sysconfig/jenkins
3、修改内容
        # 修改为对应的目标用户, 这里使用的是root
        $JENKINS_USER="root"
        # 服务监听端口
        JENKINS_PORT="16060"
4、修改目录权限
	chown -R root:root /var/lib/jenkins
    chown -R root:root /var/cache/jenkins
    chown -R root:root /var/log/jenkins
    5、重启:systemctl restart jenkins
6、创建JAVA环境的软链接:
	ln -s /root/install/jdk/jdk1.8.0_171/bin /usr/bin/java
7、管理后台初始化设置
	按照界面提示,去相应目录获取initialAdminPassword填入控制台
8、按默认设置,把建议的插件都安装上(需要大概10分钟,安装失败可重试)
9、安装完成之后, 创建管理员用户(设置jenkins管理员登录用户名lwd、密码lwd、全名、电子邮箱地址)
10、如果systemctl restart jenkins启动不了,可以用如下方式启动:
	后台启动jenkins并指定端口:nohup jenkins --httpPort=9999 &
						或:nohup java -jar jenkins.war --httpPort=9999 &
	停止:
		1、查找jenkins进程:ps -ef|grep jenkins
		2、杀死进程 kill -9 xxxx
	备注:jenkins war包存放目录: /usr/share/java/jenkins.war
	访问:http://192.168.200.161:9999
	重启:http://192.168.200.161:9999/restart
	停止:http://192.168.200.161:9999/exit
	重载:http://192.168.200.161:9999/reload
11、进入【系统管理】-【插件管理】- 标签页的【可选插件】下载安装 jenkins 插件
	- Maven Integration: Maven 集成管理插件(3.19)。
    - Docker: Docker集成插件(1.2.9)。
    - GitLab: GitLab集成插件(1.5.35)。
    - Publish Over SSH:远程文件发布插件(1.24)。
    - SSH: 远程脚本执行插件。 (2.6.1)
	注意,如果没有安装按钮,需要更改配置
	在安装插件的高级配置中,修改【升级站点】的链接为:http://updates.jenkins.io/update-center.json保存
12、安装git (验证:git version)
13、安装maven(验证:mvn -v)
14、安装docker(验证:docker -v)
15、进入【系统管理】--> 【全局工具配置】进行全局配置
	逐个配置JDK、maven、docker、git在机器上的安装目录(name,home)
	软件的安装目录:可以使用whereis命令查看,比如可以通过`whereis docker`命令查看docker的安装目录
	

你可能感兴趣的:(linux,linux,运维,centos)