🎄操作环境说明
CentOS 7.6
FinalShell
远程登录软件(如果是在自己电脑安装的虚拟机上安装Java 则不需要此软件 如果是给远程Linux
服务器安装Java
则用FinalShell
来远程连接访问)
🎄Java的安装
概述
很多软件的使用都要基于Java 比如Tomcat和Maven 所以第一个先来安装Java8
1️⃣ 下载Java8
🎨访问Oracle的官方网站(https://www.oracle.com/java/technologies/javase-jdk11-downloads.html)下载适合的操作系统的Java Development Kit(JDK)版本
确保选择正确的版本(因为官网下载还要注册Oracle
账户 比较麻烦 我直接在CSDN
上下载了)下载后我用FinalShell
将其上传到/export
目录下
❗说明
我习惯将所有的安装压缩包都放在/export
目录下 所有软件安装时的解压目录在/export/server
下
❗注意
安装的时候最好指定一个统一的目录 方便查找(我所有软件安装时的解压目录在/export/server
下)
2️⃣ 解压安装Java8
🎨接下来解压缩 执行tar -zxvf jdk-8u361-linux-x64.tar.gz -C /export/server/
🎨查看/export/server
3️⃣ 配置Java8环境变量
🎨配置Java8环境变量
#20230902 配置Java8环境变量
export PATH=$PATH:/export/server/jdk1.8.0_361/bin
🎨使环境变量生效 source /etc/profile
(下面的图我保留了自己操作时的一个错误呈现 多加了一个$
)
重新再试一遍
🎨查看Java是否配置成功
✨完美
🎄Tomcat的安装
1️⃣ Tomcat软件的获取
🎯获取Tomcat软件 [1] 在官网下载 [2] 在CSDN等web资源上直接获取 [3] 在B站教程获取等 如何获取这里不做演示 接下来直接看安装的过程
下面是我已经获取到的Tomcat
软件 还是通过FinalShell
软件上传到了/export
目录下
2️⃣ 解压安装Tomcat
🎨解压缩到/export/server
目录下
tar -zxvf apache-tomcat-8.5.59.tar.gz -C /export/server/
🎨为tomcat
的安装目录创建一个软链接 这样敲命令的时候会更简短一些(可选)
3️⃣ 配置环境变量
🎨编辑tomcat
的环境变量
追加:export PATH=$PATH:/export/server/tomcat/bin
重新加载配置文件
4️⃣启动并访问Tomcat
🎨云服务器开启防火墙8080端口 云防火墙开启后 公网才可以访问
🎨浏览器访问http://www.bigbigmeng.online:8080/
可见Tomcat
主页
🎄Nginx的安装和反向代理
1️⃣ Nginx软件的获取、解压
🎯获取Nginx软件 [1] 在官网下载 [2] 在CSDN等web资源上直接获取 [3] 在B站教程获取等 如何获取这里不做演示 接下来直接看安装的过程
下面是我已经获取到的Nginx
软件 通过FinalShell
软件上传到了/export
目录下
2️⃣ 解压Nginx
下图是解压在
/export/server
目录下的截图(软链接也创建了 软链接的创建和上面**🎄Tomcat的安装**中的方式一样)
3️⃣命令行配置nginx(配置之后进行编译安装)
:clown_face:安装会稍微费力点 需要先补充Linux的gcc编译环境
🎨补充Linux的gcc编译环境 执行下面的命令
yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++
得到如下结果
🎨进入解压后的nginx根目录 (/export/server/nginx
) 并进行配置
执行以下命令(也可以将注释删除一次性执行)
./configure --prefix=/export/server/nginx
./configure --pid-path=/export/server/nginx/nginx.pid
./configure --lock-path=/export/server/nginx/nginx.lock
./configure --error-log-path=/export/server/nginx/error.log
./configure --http-log-path=/export/server/nginx/access.log
./configure --http-client-body-temp-path=/export/server/nginx/client
./configure --http-proxy-temp-path=/export/server/nginx/proxy
./configure --http-fastcgi-temp-path=/export/server/nginx/fastcgi
./configure --http-uwsgi-temp-path=/export/server/nginx/uwsgi
./configure --http-scgi-temp-path=/export/server/nginx/scgi
./configure --conf-path=/export/server/nginx/nginx.conf
./configure --with-http_gzip_static_module
./configure --with-http_stub_status_module
./configure --with-http_ssl_module
#支持https的配置 --with-http_stub_status_module --with-http_ssl_module
执行完得到如下日志信息
4️⃣编译安装Nginx
🎨补全目录
mkdir -p /var/temp/nginx
🎨编译并安装
make && make install
得到如下结果
5️⃣启动并访问
🎨启动
./sbin/nginx -t
测试配置与nginx是否正常,当出现 successful 即可
执行启动 ./sbin/nginx -c nginx.conf
🎨浏览器访问 加下图Nginx
已经在服务器启动成功
6️⃣ 配置Tomcat 8080端口
反向代理
🎨在nginx.conf
中的http
块填入以下内容 写在所有server
块的上面(相对位置)
# 20230903 Tomcat server
upstream tomcatServer {
server localhost:8080 max_fails=3 fail_timeout=30s;
}
🎨在nginx.conf
中添加一个server
# 20230903 Tomcat server
server {
listen 80;
server_name 101.42.24.90;
location / {
proxy_pass http://tomcatServer;
}
}
保存退出
🎨重启nginx
这是我实践时遇到的一个小错误
更正后关闭nginx /export/server/nginx/sbin/nginx -s stop
然后重启nginx /export/server/nginx/sbin/nginx -c nginx.conf
查看nginx端口的启动情况 netstat -anp | grep nginx
🎨验证浏览器访问80端口 应该要能看到Tomcat的主页
nginx常用命令总结
假设nginx的安装目录为/export/server/nginx
启动 /export/server/nginx/sbin/nginx -c nginx.conf
停止 /export/server/nginx/sbin/nginx -s stop
重新加载(不需要重启)/export/server/nginx/sbin/nginx -s reload
查看版本 /export/server/nginx/sbin/nginx -v
查看版本和配置参数 /export/server/nginx/sbin/nginx -V
🎄MySQL的安装
1️⃣使用yum在线安装MySQL5.7版本
🎯使用root用户更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
🎯 安装MySQL yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
🎯 yum安装MySQL
yum -y install mysql-community-server
🎯 启动MySQL
并设置开机启动
systemctl start mysqld
systemctl enable mysqld
🎯 检查Mysql
服务状态
systemctl status mysqld
🎯 重启Mysql
systemctl restart mysqld
2️⃣修改MySQL的root用户密码
🎯 第一次启动mysql 会在日志文件中生成root用户的一个临时密码 使用下面命令查看该密码
grep 'temporary password' /var/log/mysqld.log
🎯 先用临时密码登录MySQL
mysql -u root -p -h localhost
Enter password: (输入临时密码)
🎯执行修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '要设置的密码';
如果你想设置简单密码 需要降低MySQL
的密码安全级别 不然会报错
set global validate_password_policy=LOW;
# 密码安全级别低
set global validate_password_length=4;
# 密码长度最低4位即可
然后就可以用简单密码了(生产中不建议使用简单密码)
🎯授权
grant all privileges on *.* to root@"%" identified by 'root' with grant option;
flush privileges;
🎯验证设置的root
密码
✨完美
🎄Redis的安装
1️⃣ 将redis-6.2.6.tar.gz上传到 Linux /opt 目录并解压缩
获取nginx-1.20.2.tar.gz 软件的方式有很多 同前面的软件一样 这里不多赘述 直接从上传此安装包开始
🎯将redis-6.2.6.tar.gz
上传到 远程服务器的/export
目录下
🎯将redis-6.2.6.tar.gz
解压到/export/server
目录下
🎯创建软连接
2️⃣配置gcc环境
说明 安装Redis需要gcc环境 因为Redis是用C语言编写的 需要使用gcc编译器来编译源代码并生成可执行文件 gcc是Linux操作系统上最常用的编译器之一 它能够将C语言代码转换成机器码 从而实现运行程序 因此 在安装Redis之前 需要确保系统中已经安装了gcc环境
yum install gcc
我之前已经安装过 可以查看版本如下
3️⃣编译安装Redis
🎯进入redis
的解压根目录 /export/server/redis
执行 make && make install
到此 安装成功~ 安装目录在 /usr/local/bin
🎯查看默认安装目录
内容说明如下
redis-benchmark: 性能测试工具,可以在自己机器运行,看看自己机器性能如何
redis-check-aof:修复有问题的 AOF 文件
redis-check-dump:修复有问题的 dump.rdb 文件
redis-sentinel:Redis 集群使用
redis-server:Redis 服务器启动命令
redis-cli:客户端,操作入口
4️⃣启动Redis
🎯进入redis
的解压根目录 /export/server/redis
修改redis.conf
文件
将daemonize no
改成 yes
, 并保存退出 以支持后台启动
🎯配置启动环境变量 ci /etc/profile
🎯启动redis
启动之前先执行source /etc/profile
使得环境变量生效
🎯查看启动状态 ps aux | grep redis
🎯用客户端访问并进行简单操作 redis-cli
✨完美~
🎄RabbitMQ的安装
参考链接如下
https://blog.csdn.net/rao991207823/article/details/118000903
🎯下载erlang
和RabbitMQ
执行如下命令
wget -P /home/download https://github.com/rabbitmq/erlang-rpm/releases/download/v23.0/erlang-23.0-1.el7.x86_64.rpm
wget -P /home/download https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm
使用http协议再试一遍 😕速度慢到不能接受 只能在官网下载 或者在CSDN等上获取了
看了一下 到了13% 顺便休息一下 再等会吧
✨不用等了 把链接 [1] https://github.com/rabbitmq/erlang-rpm/releases/download/v23.0/erlang-23.0-1.el7.x86_64.rpm
[2] https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm
放在本地浏览器地址栏 速度嘎嘎快(当然这需要能访问Github流畅)
🎯上传到Linux的/export
目录下
🎯安装erlang
执行 sudo rpm -Uvh /export/erlang-21.3-1.el7.x86_64.rpm
🎯安装socat
执行sudo yum install -y socat
🎯安装RabbitMQ
执行 sudo rpm -Uvh /export/rabbitmq-server-3.8.9-1.el7.noarch.rpm
🎯RabbitMQ启动和关闭
启动服务 sudo systemctl start rabbitmq-server
查看状态 sudo systemctl status rabbitmq-server
停止服务 sudo systemctl stop rabbitmq-server
🎯开启web管理插件
开启插件 rabbitmq-plugins enable rabbitmq_management
添加用户 rabbitmqctl add_user admin admin
说明 rabbitmq有一个默认的guest用户,但只能通过localhost访问,所以需要添加一个能够远程访问的用户
为用户分配操作权限 rabbitmqctl set_user_tags admin administrator
🎯开启防火墙端口以便能够远程访问
🎨RabbitMQ 服务启动后,还不能进行外部通信,需要将端口添加都防火墙
sudo firewall-cmd --zone=public --add-port=4369/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=25672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
浏览器测试访问 http://www.bigbigmeng.online:15672
✨完美~
🎄ZooKeeper的安装
上传
解压到
/export/server
下
🍭配置zoo.cfg
cp zoo_sample.cfg zoo.cfg
创建数据文件夹并在zoo.cfg文件配置 :
dataDir=/export/server/zookeeper-3.5.6-20231112/zookeeper_data
🍭启动ZooKeeper
cd /export/server/zookeeper-3.5.6-20231112/bin/
#启动
./zkServer.sh start
启动出错的情况(AdminServer需要使用8080端口):
解决方法:修改zoo.cfg
,在其中加上
# admin.serverPort 默认占8080端口
admin.serverPort=8091
再次启动:
🍭查看启动的ZooKeeper
./zkServer.sh status
standalone代表ZooKeeper没有搭建集群 现在是单节点
🍭停止ZooKeeper
./zkServer.sh stop
🎄Kafka的安装和使用
说明:启动Kafka之前需要先安装并启动zookeeper
🍭上传和解压
🍭配置kafka需要的目录
创建一个kafka_data目录 用于存放kafka和zookeeper的log和数据
mkdir -p /export/server/kafka_2.12-3.4.1_20240330/kafka_data
mkdir -p /export/server/kafka_2.12-3.4.1_20240330/kafka_data/zookeeper #zookeeper数据目录
mkdir -p /export/server/kafka_2.12-3.4.1_20240330/kafka_data/log
mkdir -p /export/server/kafka_2.12-3.4.1_20240330/kafka_data/log/kafka #kafka日志
mkdir -p /export/server/kafka_2.12-3.4.1_20240330/kafka_data/log/zookeeper #zookeeper日志
🍭配置kafka配置文件
配置kafka服务: server.properties
broker.id=0
port=9092 #端口号
host.name=140.113.165.130 #服务器IP地址,修改为自己的服务器IP
log.dirs=/export/server/kafka_2.12-3.4.1_20240330/kafka_data/log/kafka #日志存放路径,上面创建的目录
zookeeper.connect=localhost:2181 #zookeeper地址和端口
配置zookeeper服务: zookeeper.properties
dataDir=/mnt/soft/kafka_data/zookeeper #zookeeper数据目录
dataLogDir=/mnt/soft/kafka_data/log/zookeeper #zookeeper日志目录
clientPort=2181
maxClientCnxns=100
tickTimes=2000
initLimit=10
syncLimit=5
🍭创建启动|关闭 kafka
执行脚本
启动脚本:
#!/bin/sh
#start zookeeper
/export/server/kafka_2.12-3.4.1_20240330/bin/zookeeper-server-start.sh /export/server/kafka_2.12-3.4.1_20240330/config/zookeeper.properties &
#等3秒后执行
sleep 3
#start kafka
/export/server/kafka_2.12-3.4.1_20240330/bin/kafka-server-start.sh /export/server/kafka_2.12-3.4.1_20240330/config/server.properties &
关闭脚本:
#!/bin/sh
#stop zookeeper
/export/server/kafka_2.12-3.4.1_20240330/bin/zookeeper-server-stop.sh /export/server/kafka_2.12-3.4.1_20240330/config/zookeeper.properties &
#等3秒后执行
sleep 3
#stop kafka
/export/server/kafka_2.12-3.4.1_20240330/bin/kafka-server-stop.sh /export/server/kafka_2.12-3.4.1_20240330/config/server.properties &
为脚本增加执行权限:
chmod +x start-kafka.sh
🍭启动|关闭 kafka
sh start_kafka.sh #启动kafka
sh stop_kafka.sh #关闭kafka
🎄Docker的安装
🍭安装Docker
(1)卸载旧版本的Docker
(2)安装需要的依赖
(3)添加dockor软件源、
(4)设置国内dockor源,让下载更加快速
(5)安装dockor
(6)查看dockor版本
🍭Docker常用命令
systemctl start docker #启动docker服务
systemctl stop docker #停止docker服务
systemctl restart docker #重启docker服务
systemctl status docker #查看docker服务状态
systemctl enable docker #开机启动docker服务
systemctl disable docker #关闭开机启动docker服务
🍭设置dockor镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://88y9upwp.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
🎄Elasticsearch的安装·使用Docker
🍭部署单点es
(0)上传压缩包
(1)创建网络:
因为还需要部署kibana容器 因此需要让es和kibana容器互联 这里先创建一个网络:
docker network create es-net
(2)加载镜像:
这里采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G 就用刚刚上传的es.tar即可
# 导入数据 `kibana`的tar包也这样做
docker load -i es.tar
提示没有足够的空间:
查看Docker信息:
查看Docker目录剩余的存储空间:df -hl /var/lib/docker/
重新执行加载
docker load -i es.tar
(3)运行docker命令,部署单点es
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.12.1
【命令解释】
-e "cluster.name=es-docker-cluster"
:设置集群名称-e "http.host=0.0.0.0"
:监听的地址,可以外网访问-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
:内存大小-e "discovery.type=single-node"
:非集群模式-v es-data:/usr/share/elasticsearch/data
:挂载逻辑卷,绑定es的数据目录-v es-logs:/usr/share/elasticsearch/logs
:挂载逻辑卷,绑定es的日志目录-v es-plugins:/usr/share/elasticsearch/plugins
:挂载逻辑卷,绑定es的插件目录--privileged
:授予逻辑卷访问权--network es-net
:加入一个名为es-net的网络中-p 9200:9200
:端口映射配置
访问测试 http://node1:9200 可看到elasticsearch的响应结果:
🍭部署kibana
(1)运行docker命令,部署kibana
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.12.1
--network es-net
:加入一个名为es-net的网络中,与elasticsearch在同一个网络中-e ELASTICSEARCH_HOSTS=http://es:9200"
:设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch-p 5601:5601
:端口映射配置
kibana启动一般比较慢,需要多等待一会,可以通过命令:
docker logs -f kibana
查看运行日志,当查看到下面的日志,说明成功:
(2)测试
此时,在浏览器输入地址访问:http://node1:5601,即可看到结果
kibana中提供了一个DevTools界面:
测试中文分词效果:
🍭安装IK分词器
在线安装ik插件(较慢)
# 进入容器内部
docker exec -it elasticsearch /bin/bash
# 在线下载并安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
#退出
exit
#重启容器
docker restart elasticsearch
离线安装ik插件(推荐)
(1)查看数据卷目录
安装插件需要知道elasticsearch的plugins目录位置,而我们用了数据卷挂载,因此需要查看elasticsearch的数据卷目录,通过下面命令查看:
docker volume inspect es-plugins
显示结果:
[
{
"CreatedAt": "2024-01-01T15:17:04+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/es-plugins/_data",
"Name": "es-plugins",
"Options": null,
"Scope": "local"
}
]
说明plugins目录被挂载到了:/var/lib/docker/volumes/es-plugins/_data
这个目录中
(2)解压缩分词器安装包
(3)重启容器
# 4、重启容器
docker restart es
# 查看es日志
docker logs -f es
(4)测试 IK分词器两种模式
ik_smart
:最少切分 认识你真的太棒了
ik_max_word
:最细切分 认识你真的太棒了
扩展词典
🍭集群部署
…