因工作性质原因,本人没有linux服务器的操作权限,然后领导还要求我把nacos部署上去,巧妇难为无米之炊。反正闲着也是闲着,我自己模拟个linux环境安装可以了吧。
一、虚拟机和linux系统
VMWare 16 pro下载:
提取码: 33pc
许可证,三选一输入即可:
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8
CentOS7下载:
mirrors.aliyun.com/centos/7/is…
选择:CentOS-7-x86_64-DVD-2009.iso进行下载
直接用浏览器下非常的慢,建议用迅雷
CentOS7安装教程:blog.csdn.net/m0_51545690…,来自csdn博主秃头披风侠.
二、Linux系统网卡配置
2.1 查看虚拟机的虚拟网络编辑器的一些配置
首先关闭虚拟机,右键虚拟机名称 -> 电源 -> 关闭客户机。
点击编辑,查看虚拟网络编辑器内容:
点击NAT设置:
注意红色字体和红圈来的内容,关注子网IP、网关IP。
2.2 配置网关
重启服务器,以root用户登录。
右键桌面,打开终端,修改网络配置:
vi /etc/sysconfig/network
添加如下内容(输入i进入插入模式):
NETWORKING=yes #表示系统是否使用网络,一般设置为yes。如果设为no,则不能使用网络。
HOSTNAME=centos #设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应
GATEWAY=192.168.81.2 #设置本机连接的网关的IP地址。
在插入模式下输入esc,然后输入wq保存文件。
2.3 配置IP地址
- 进入到网络配置文件目录
/etc/sysconfig/network-scripts,这里可以看到以ifcfg-开头的文件
cd /etc/sysconfig/network-scripts
- 打开
ifcfg-ens33为网卡ens33进行一些配置:
vi ifcfg-ens33
3. 打开配置文件为网卡ens33配置一些ip相关信息,注意不要改错,保存文件退出。
BOOTPROTO=static # ip是否动态获取:dhcp动态获取,none和static表示静态网络
IPADDR=192.168.81.100 # 设定的IP,可以是192.168.81.3和192.168.81.255之间任意一个
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.81.2 # 网关地址
DNS1=114.114.114.114 # DNS地址,如需域名解析需要设置
DNS2=8.8.8.8
2.4 设置主机名为www
编辑配置文件/etc/hostname:
# 打开文件
vi /etc/hostname
# 修改文件内容为www
www
编辑配置文件/etc/hosts:
# 打开文件
vi /etc/hosts
# 修改内容
127.0.0.1 localhost www
2.5 重启网络服务
重启网络服务:
# 重启命令
service network restart
# 查看ip地址,已经是我们设定的192.168.81.100
ip addr show ens33
2.6 开放端口
开放22端口:
# 永久开放22端口
firewall-cmd --zone=public --add-port=22/tcp --permanent
# 重新加载防火墙规则
firewall-cmd --reload
# 查看22端口是否成功开放
firewall-cmd --zone=public --query-port=22/tcp
2.7 总结
经过一系列配置,我们设置了虚拟机的ip是192.168.81.100,并开放了22端口号。
三、WinSCP和XShell
WinScp可以连接虚拟机并管理文件。(官方网站:winscp.net/eng/index.p…,建议还是用迅雷下载)
XShell可以连接虚拟机并执行各种linux命令。
个人版下载:www.xshell.com/zh/free-for…
注册:输入用户名和邮箱,点击后来即可。注册引导
分别测试连接我们自己的ip,都连接成功就可以了。
四、linux系统上安装nacos
nacos版本是2.0.4
4.1 安装java
前往oracle官网下载,下载rpm文件,在我写文档的时间点,我下载的是jdk-8u441-linux-x64.rpm。
使用winscp创建一个目录,专门存放各种安装包,如/home/dev:
将rpm文件上传到这个目录(打开目录拖拽即可):
通过rpm包安装jdk:
sudo rpm -ivh /home/dev/jdk-8u441-linux-x64.rpm
查看Java版本,确认是否安装成功
# 指令
java -version
# 预期结果
java version "1.8.0_441"
Java(TM) SE Runtime Environment (build 1.8.0_441-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.441-b07, mixed mode)
配置环境变量,打开配置文件:
vi /etc/profile
文件的最后一行加入如下内容:
# Java Environment
export JAVA_HOME=/usr/java/jdk1.8.0-x64/
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
执行以下命令让新的环境变量设置立即生效:
source /etc/profile
4.2 安装MySQL
将mysql安装包解压到/home:
tar -Jxvf /home/dev/mysql-8.0.34-linux-glibc2.12-x86_64.tar.xz -C /home/
重命名文件名:
cd /home
mv mysql-8.0.34-linux-glibc2.12-x86_64 mysql8.0
修改mysql配置文件:
vim /etc/my.cnf
如果文件存在,可以清空内容然后复制如下内容:
[mysqld]
# 端口号
port=3306
# 用户名
user=mysql
# 设置mysql的安装目录
basedir=/home/mysql8.0
# 设置mysql数据库的存储目录
datadir=/home/mysql8.0/data/data
# 错误日志位置
log-error=/home/mysql8.0/data/logs/error.log
# biglog位置
log_bin = /home/mysql8.0/data/binlog/mysql-bin
# relaylog位置
relay_log = /home/mysql8.0/data/relaylog/relay-bin
# 慢sql日志位置
slow_query_log_file = /home/mysql8.0/data/logs/slow.log
# 开启慢sql
slow_query_log=on
# pid文件
pid_file=/home/mysql8.0/data/my.pid
# 默认编码
character_set_server=utf8mb4
symbolic-links=0
# 默认存储引擎
default-storage-engine=INNODB
# 缓冲池大小
innodb_buffer_pool_size=128M
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 设置时区
default-time-zone='+08:00'
# 允许外部访问
bind-address=0.0.0.0
socket=/tmp/mysql.sock
创建mysql数据和日志目录(data/data目录不用创建初始化mysql时会自动创建):
cd /home/mysql8.0
mkdir data
mkdir data/binlog
mkdir data/logs
mkdir data/relaylog
更改目录下所有文件夹所属的用户组、用户以及权限:
cd /home
chown -R mysql:mysql mysql8.0
chmod -R 755 mysql8.0
初始化mysql:
cd /home/mysql8.0
./bin/mysqld --initialize
查看日志文件:
cat /home/mysql8.0/data/logs/error.log
里面有初始密码:
A temporary password is generated for root@localhost: gwpwRy<Nd4;H
添加mysqld服务:
# mysql目录
cd /home/mysql8.0/
# 添加mysqld服务
cp -a ./support-files/mysql.server /etc/init.d/mysql
# 授权以及添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
配置环境变量:
# 打开环境变量配置
vi /etc/profile
# 在最后一行添加如下内容
export PATH=/home/mysql8.0/bin:$PATH
# 刷新配置
source /etc/profile
启动mysql:
# 启动mysql
service mysql start
# 查看mysql状态
service mysql status
# 查看mysql进程
ps -ef | grep mysql
# 设置mysql开机自启动
sudo systemctl enable mysql
登录mysql并修改密码:
# 然后输入初始密码
mysql -uroot -p
# 修改root密码,将123456换成你的新密码
ALTER USER 'root'@'localhost'IDENTIFIED wITH mysql_native_password BY '123456';
# 然后刷新权限 使密码生效
flush privileges;
修改远程连接并生效:
# 选中mysql数据库
use mysql;
# 设置允许远程连接并生效
update user set host='%' where user='root';
# 然后刷新使修改生效
flush privileges;
# 退出mysql命令行
exit;
开放3306端口:
# 永久开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 刷新防火墙配置
firewall-cmd --reload
# 查看3306端口状态
firewall-cmd --zone=public --query-port=3306/tcp
现在就可以用Navicat测试连接数据库了。
4.3 初始化数据库
nacos需要连接到mysql数据库,这里需要提前配置一下,本实验采用的是ruoyi-cloud,需要有一个ry-config库,如下:
4.4 安装nacos
下载地址,下载nacos-server-2.0.4.tar.gz,将其上传到/home/dev:
解压到/usr/nacos目录:
# 新建目录
mkdir /usr/nacos
# 解压
tar -zxvf /home/dev/nacos-server-2.0.4.tar.gz -C /usr/nacos/
打开nacos的配置文件:
# 改变工作目录
cd /usr/nacos/nacos/conf/
# 打开文件
vi application.properties
修改配置文件,主要是数据库连接信息:
## If use MySQL as datasource:
spring.datasource.platform=mysql
## Count of DB:
db.num=1
## Connect URL of DB:
db.url.0=jdbc:mysql://192.168.81.100:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456
### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
以单机模式启动nacos:
# 启动
sh /usr/nacos/nacos/bin/startup.sh -m standalone
# 终止
sh /usr/nacos/nacos/bin/shutdown.sh
放开必要的端口:
- 8848:nacos所在的端口
- 9848:主要用于Nacos客户端与服务端之间基于gRPC协议的通信
# 永久开放8848、9848端口
firewall-cmd --zone=public --add-port=8848/tcp --permanent
firewall-cmd --zone=public --add-port=9848/tcp --permanent
# 重新加载防火墙规则
firewall-cmd --reload
# 查看端口是否成功开放
firewall-cmd --zone=public --query-port=8848/tcp
firewall-cmd --zone=public --query-port=9848/tcp
五、SpringCloud连接到nacos
这步纯粹是我个人业务上的需求,不需要的可以跳过了。
5.1 服务器数据库配置
为了模拟更真实的场景,现在我们让数据库也使用服务器上的。先导入ry-cloud库和ry-seata库,如下:
5.2 redis配置
安装redis
先下载redis,这里取的是redis 7.4.2.tar.gz。将其上传到/home/dev:
解压到/usr/redis目录:
# 新建目录
mkdir /usr/redis
# 解压
tar -zxvf /home/dev/redis-7.4.2.tar.gz -C /usr/redis/
Redis是基于C语言编写的,安装Redis所需要的gcc依赖:
# 进入目录
cd /run/media/root/CentOS 7 x86_64/Packages
# 依次执行命令
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh cpp-4.8.5-44.el7.x86_64.rpm
rpm -ivh kernel-headers-3.10.0-1160.el7.x86_64.rpm
rpm -ivh glibc-headers-2.17-317.el7.x86_64.rpm
rpm -ivh glibc-devel-2.17-317.el7.x86_64.rpm
rpm -ivh libgomp-4.8.5-44.el7.x86_64.rpm
rpm -ivh gcc-4.8.5-44.el7.x86_64.rpm
# 查看Linux内核版本
gcc -v
编译和安装redis:
# 进入目录
cd /usr/redis/redis-7.4.2
# 编译
make
# 安装
make install
启动redis
复制并打开配置文件:
# 打开目录
cd /usr/redis/redis-7.4.2
# 备份配置文件
cp redis.conf redis.conf.bck
# 修改redis.conf
vi redis.conf
修改内容为:
# 监听的地址,默认是127.0.0.1,会导致只能在本地访问,修改为0.0.0.0则可以在任意IP区间访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
开启内存过度使用功能:
# 编辑/etc/sysctl.conf文件
vi /etc/sysctl.conf
# 新增到文件:开启内存过度使用功能
vm.overcommit_memory = 1
# 配置生效
sysctl -p
启动redis:
# 进入redis安装目录
cd /usr/redis/redis-7.4.2
# 启动
redis-server redis.conf
# 查看redis运行进程
ps -ef | grep redis
# 先关闭redis进程
kill -9 进程Id
开机自启动
新建一个开机自启动文件:
vi /etc/systemd/system/redis.service
文件内容是:
[Util]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/redis/redis-7.4.2/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置开机自启动:
# 然后重载系统服务
systemctl daemon-reload
# 然后就可以使用命令来操作redis
systemctl start redis
# 查看状态
systemctl status redis
# 停止redis
systemctl stop redis
# 配置redis开机自启
systemctl enable redis
开放端口
redis所在的端口是6379,开放即可:
# 永久开放6379端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
# 重新加载防火墙规则
firewall-cmd --reload
# 查看6379端口是否成功开放
firewall-cmd --zone=public --query-port=6379/tcp
保护模式
如果尝试连接linux服务器ip的redis,会出现如下错误:
# 进入redis安装目录
cd /usr/redis/redis-7.4.2
# 测试连接
redis-cli -h 192.168.81.100 -p 6379 ping
# 错误信息
(error) DENIED Redis is running in protected mode because protected mode is enabled and no password is set for the default user. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Set up an authentication password for the default user. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.
这是redis的安全限制,配个密码就可以了。错误信息已经给出了几种临时的解决方式,下面是其中的一种:
# 打开目录
cd /usr/redis/redis-7.4.2
# 打开redis命令行
redis-cli
# 关闭保护模式
CONFIG SET protected-mode no
5.3 配置中心
目前我们的数据库和redis都配置好了,信息如下:
数据库:192.168.81.100:3306/ry-cloud root 123456
redis:192.168.81.100:6379 免密
前往nacos的配置中心,修改如下配置文件:
- 网关(
ruoyi-gateway-dev.yml):redis - 权限(
ruoyi-auth-dev.yml):redis - 系统(
ruoyi-stytem-dev.yml):mysql、redis - 定时任务(
ruoyi-job-dev.yml):mysql、redis - 代码生成(
ruoyi-gen-dev.yml):mysql、redis
修改完之后,启动若依微服务的所有服务,看能不能正常使用,可以的话就配置完成了。