常用软件运维部署篇(六)–Nacos 2.0.2(普通用户)
Nanos 2.0.2 下载地址:
https://pan.baidu.com/s/1jOgpgRMA_Lx6XwgbYp2yoA
提取码:JKGD
1.1. 安装Nacos 2.0.2(普通用户)
1.1.1. 安装
1.将下载好的nacos-server-2.0.2.tar.gz上传到 /home/lamp/soft/ 目录下
2.解压 tar -zxvf nacos-server-2.0.2.tar.gz
3.进入 /nacos/bin 目录,修改startup.sh 启动文件
单机模式:将 cluster 改为:standalone
JAVA_HOME:注释掉原来的JAVA_HOME定义,重新添加实际的
1.1.2. 启动服务
startup.sh
查看进程
ps -ef | grep nacos
1.1.3. 端口
1.1.4. 设置开机自启动(普通用户)
1.1.4.1. 添加nacos.service文件
vi /lib/systemd/system/nacos.service
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
ExecStart=/home/lamp/soft/nacos/bin/startup.sh
ExecReload=/home/lamp/soft/nacos/bin/shutdown.sh
ExecStop=/home/lamp/soft/nacos/bin/shutdown.sh
PrivateTmp=true
User=lamp
Group=wheel
[Install]
WantedBy=multi-user.target
1.1.4.2. 加入Nacos服务
systemctl daemon-reload
1.1.4.3. 设置开机自启
systemctl enable nacos.service
1.1.5. 常用命令
systemctl start nacos.service
systemctl stop nacos.service
1.1.6. 运行报错
错误原因
nacos是有java开发而成,在启动的时候需要JDK版本1.8,在系统环境中已经配置了JAVA_HOME,但是在service脚本中,会从(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin这些路径中寻找javac,只需要将我们自己的java目录软链接到/usr/bin/java即可
错误解决
查看java安装位置
建立软链接
ln -s /home/lamp/soft/jdk1.8.0_181/bin/javac /usr/bin/javac
如果还是无法启动找不到javac,将javac设置为可执行
chmod +x /home/lamp/soft/jdk1.8.0_181/bin/javac
1.1.7. 防火墙端口开放限制
若有远程调测的需求,则需要在阿里云平台的安全组中开放nacos端口8848,并限制指定的IP才能访问,避免黑客攻击。
1.1.8. 浏览器访问nacos
默认端口:8849
http://8.152.132.18:8848/nacos/index.html
默认账户密码:nacos/nacos
1.1.9. 结合业务添加数据库
1.1.9.1. 修改 conf/application.properties 文件, 增加数据库配置
vim conf/application.properties
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3806/lamp_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=65dw@1~21!;rt*&
1.1.9.2. 创建数据库
CREATE DATABASE `lamp_nacos` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
1.1.9.3. 向lamp_nacos库中导入数据库脚本:
H:\项目服务器部署\数据库\nacos-mysql.sql
1.1.9.4. 重新启动nacos服务
systemctl restart nacos.service
1.1.10. 安全加固
1.1.10.1. 修改原来的默认nacos密码
一般安装nacos后登录密码默认都是nacos/nacos,但是在正式的生成环境这样肯定是不安全的。
nacos底层源码是BCryptPasswordEncoder加密器加密。
我们在Java代码中使用 BCryptPasswordEncoder加密器加密
(1)导入Security的依赖
(2)加密得到密文
(3)修改nacos用户的密码为新生成的密码串
(4)重新登录即可
1.1.10.2. 开启权限认证
在之前搭建的项目中,Nacos注册服务时,没有开启权限认证,实际上线后,如果别人知道了Nacos地址,随便注册一个相同服务名的实例,则会导致大问题出现,所以开启权限认证及配置规范很重要。
(1)修改Nacos配置文件,开启权限认证,启动nacos
(2)重启nacos
systemctl restart nacos.service
重新登录nacos,账号为空时,将提示权限认证,必须使用账号登录。
1.1.11. 配置文件导入Nacos
1.1.11.1. 新建命名空间
登录nacos控制台, 访问 命名空间 -> 新建命名空间 分别创建正式环境和开发环境的命名空间
正式环境
命名空间ID:5756d-c089-44456547657567f14new
命名空间名称:lamp-pro-prod
描述:lamp-pro-prod(正式环境)
开发环境
命名空间ID:6bd56-f94e-4832-9cf56565e-fe565635b78c68f7
命名空间名称:lamp-pro-dev
描述:lamp-pro-dev(开发环境)
1.1.11.2. 修改nacos IP 和域名映射
修改 src/main/filters/config-dev.properties 中的 nacos.ip 为你nacos的ip, 或者在hosts文件配置映射.
vi /etc/hosts
# 映射的ip 一定是你nacos的ip
127.0.0.1 lamp.com
1.1.11.3. 配置日志路径
修改 src/main/filters/config-dev.properties 中的logging.file.path 为本机已经创建好的且 当前用户拥有权限的路径。
# 日志存储路径
logging.file.path=/home/lamp/soft/nacos/projects-logs/prod
1.1.11.4. 导入配置文件
nacos_config_export_20220421152900.zip 压缩包进行导入
(1)在 nacos 中修改 mysql.yml 的IP、 端口、 账号密码(lamp.mysql.xxx)以及多数据源类型(lamp.database.multiTenantType)
lamp:
mysql:
ip: 8.152.132.31
port: 3806
driverClassName: com.mysql.cj.jdbc.Driver
database: lamp_ds_c_defaults
username: 'root'
password: '65dw3@1~32221!;rt*&'
database: # 字段介绍参考 DatabaseProperties
# COLUMN模式中隔离 租户 的列名
tenantIdColumn: '`created_org_id`'
multiTenantType: DATASOURCE_COLUMN
(2)修改 nacos 中 redis.yml 的IP、 端口、 账号密码。
lamp:
cache:
type: REDIS
serializerType: ProtoStuff
cacheNullVal: true
redis:
# ip: 10.10.10.31
ip: 8.152.132.31
port: 6739
password: '#@d3~19238r%¥&g3dge2434!~'
database: 0
(3)修改 nacos 中 rabbitmq.yml 的IP、 端口、 账号密码
lamp:
rabbitmq:
# 若系统中有除了zipkin之外的地方使用了mq ,则一定不能设置成false
enabled: true
ip: 8.152.132.31
port: 5672
username: 'admin'
password: '*4delAE$23%31iu1u'
1.1.12. 添加新用户及授权
1.1.12.1. 添加新用户nacos_seata
在Java代码中使用 BCryptPasswordEncoder加密器加密密码
并把新用户nacos_seata添加到users表中
在roles表中赋予权限
1.1.12.2. 添加用户注意事项
在java代码中,如果nacos用户的密码含有特殊字符,例如%@#¥&等,将会自动被转义,因此尽量新增新的用户来提供给不同业务使用,已确保安全性。
1.1.13. 常见问题
1.1.13.1. 导入配置文件失败,报未读取到合法数据
解决办法:查看nacos日志,发现是权限问题,因为nacos是使用普通用户lamp启动的,所以没有权限访问/work/Tomcat路径
由于nacos是使用内置的tomcat,默认位置是在/work目录下,因此修改/work的权限即可
chmod 757 -R work/
重新上传配置就可以上传成功了。
接下来将持续更新内容。欢迎大家关注公众号,点击 #软件运维部署 话题即可继续阅读 常用软件运维部署篇 相关内容。若需要文章中的源码或有疑问,可以在公众号中联系客服免费获取源码或沟通疑问或联系QQ:2833536029 。