本文将整合以下常用信息,从而为云服务从零到一的部署提供便捷快速的指导:
使用appnode提供服务运维
nginx作为反代,可以代理静态资源或者href跳转
jdk环境配置
jar微服务部署启动
redis缓存数据库
mysql云服务数据库
ssh禁用root登录,启用自定义账户和复杂密码,提高服务器安全级别
一、前期准备
1.重装系统 CENTOS8 -> CENTOS7.9 阿里云控制台 — 更换系统盘 OK
2.阿里云 安全组配置- 开放端口: 8888 . — OK
3.正式服数据库备份。— OK
4.OSS文件路径检查。重装是否有影响. — 没有。是独立开来的 OK
二、实施
1.appnode安装:
参考: https://www.appnode.com/install
指令是:
INSTALL_AGENT=1 INSTALL_APPS=sitemgr INIT_SWAPFILE=1 INSTALL_PKGS='nginx-stable,php74,mysql57' bash -c "$(curl -sS http://dl.appnode.com/install.sh)"
appnode 绑定序列号是: xxxxx-xxxxx-KV6NN-HTQR6-22AW7 (请自行购买appnode序列号,购买链接: https://www.appnode.com/serialcode#/product/serialcode )
控制台会提示你确认端口,设置 账户,密码
appnode 安装成功就可以登录:(把ip换成你自己的服务器ip)
http://你的ip:8888/login#/ccenter/nodemgr
2.nginx当前配置的备份(这边省略,主要备份nginx.conf) 以及 新服上面重新安装
指令安装:
yum install epel-release -y
yum install dnf
wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/dnf-conf-0.6.4-2.sdl7.noarch.rpm
wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64//dnf-0.6.4-2.sdl7.noarch.rpm
wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/python-dnf-0.6.4-2.sdl7.noarch.rpm
yum install python-dnf-0.6.4-2.sdl7.noarch.rpm dnf-0.6.4-2.sdl7.noarch.rpm dnf-conf-0.6.4-2.sdl7.noarch.rpm
cat /etc/redhat-release
dnf update
sudo dnf install epel-release
sudo vim /etc/yum.repos.d/nginx.repo
--> vim 编辑 附加的内容 :
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
继续安装nginx,它会自己读取你刚配置的镜像依赖,快速的下载下来:
sudo dnf install nginx-1.18.0
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
验证nginx: 打开该服务器ip即可.
重装nginx:
sudo dnf remove nginx
sudo dnf install nginx-1.18.0
检查Bin文件存在,默认路径 : /usr/sbin/nginx
配置Conf文件,默认位置 : /etc/nginx/nginx.conf
关闭nginx , 然后以 conf 配置来启动:
ps -ef|grep nginx
kill -QUIT 进程ID
/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
/usr/sbin/nginx -c /etc/nginx/nginx.conf
/usr/sbin/nginx -s reload
systemctl status nginx
解压:
tar -zxvf filename.tar.gz
验证conf配置生效了么:
nginx -t
3.备份与安装jdk :
解压 JDK 到指定目录 : /usr/local/jdk8
vim /etc/profile
最后面回车换行,再加入代码:
export JAVA_HOME=/usr/local/jdk8/jdk1.8.0_281
export PATH=$PATH:$JAVA_HOME/bin
然后:
[ESC] , :wq!
环境变量生效:
source /etc/profile
验证:
java -version
4.appnode 软件管家 安装 redis , port : 6379 -> 16379, 无密码 -> 设置密码 .同时设置java微服务中6379端口对应的新密码 重新打jar包发版即可
5.下次安装 :
appnode 软件管家 安装 mysql , port : 3306 -> 16988,设置一个密码
还原 正式服原有的 拷贝的数据库数据。 log 数据多的话,看情况决定拷贝多少
初始密码修改:
mysql bash:
mysqladmin -u用户名 -p旧密码 password 新密码
mysqladmin -uroot -p password 你的新密码
mysql -uroot -p
设置为 所有人都可以访问,而不是仅有 localhost:
mysql bash登录后:
use mysql;
update user set host = '%' where user = 'root' and host='localhost';
select host ,user from user ;
FLUSH RIVILEGES ;
然后打开navicat通过 服务器mysql的ip,密码 连上。找到mysql 表,复制用户 root 这栏数据,建立新用户 ,名称自己定一个
重启mysqld服务。重连mysql即可使用新用户登录。
后续需要 禁用仅全聚合。 因为正式服目前是这样的。
再后续 , 由于不推荐禁用全聚合 ONLY_FULL_GROUP_BY 。以后还是要逐渐放开的。然后 优化项目中的sql代码。
6.appnode 安装ssh ,监听地址 0.0.0.0 , 22端口禁用root登录,启用自定义账户 xxx (这个账户名称自己定) 登录
6.1. 使用root用户登录到服务器。
ssh root@你的服务器ip或者域名
你的服务器密码
6.2. 创建一个新的用户:
adduser xxx
6.3. 为新用户设置密码:
passwd xxx
你的服务器密码
6.4. 将新用户添加到sudo组(可选):
usermod -aG wheel xxx
6.5. 编辑SSH配置文件:
vim /etc/ssh/sshd_config
6.6. 找到以下行并进行修改:
#PermitRootLogin yes #改为
PermitRootLogin no
加代码(如果不存在):
AllowUsers xxx
PasswordAuthentication yes
6.7. 保存并关闭文件。
[ESC] :wq!
6.8. 重启SSH服务以使更改生效:
systemctl restart sshd
6.9.现在,您可以使用新创建的用户名 (xxx) 和相应的密码进行SSH登录
ssh xxx@你的服务器ip
你的服务器密码
修改SSH 密码:
先登录 你想改的 ssh账户 到该服务器。
然后 修改密码
passwd
系统会提示你输入当前密码,输入当前用户的密码。
然后系统会提示你输入新密码,输入你想要设置的新密码。密码输入时不会在屏幕上显示任何字符。
再次输入新密码进行确认。
修改结果:
测试 云服务器:
IP: 47.120.37.xxx
账号:root , xxx
密码: xxxxxxxxxxxxx
新密码是: xxxxxxxxxxxxxxxxxxx
- appnode 安装 supervisor, 启动jar服务的 配置:
xxx_backend /usr/local/jdk8/jdk1.8.0_281/bin/java -jar /home/docker_package_xxx_interface/target/xxx_interface_backend-0.0.1.jar --spring.profiles.active=dev
默认日志位置: /var/log/supervisor/
- nohup指令 ,启动jar服务的配置:
一次性启动 xxx_interface:
/usr/local/jdk8/jdk1.8.0_281/bin/java -jar /home/docker_package_xxx_interface/target/xxx_interface-0.0.1.jar --spring.profiles.active=dev
长期挂着 xxx_interface:
nohup /usr/local/jdk8/jdk1.8.0_281/bin/java -jar /home/docker_package_xxx_interface/target/xxx_interface-0.0.1.jar --spring.profiles.active=dev > /home/logs/xxx_interface.log 2>&1 &
自定义的日志位置: /home/logs
解释:
nohup:让程序在用户登出后继续运行。
>:将标准输出重定向到指定的日志文件中,这样您可以查看运行情况。
2>&1:将标准错误重定向到标准输出。
&:将进程放入后台执行。
9.验证:
平台:你的域名网址 http://你的服务器ip
web: 账号:xxx 密码:xxx
WEB 超管的 账户密码: xxx , xxxxxxxxx
APP:
账号:xxx 密码 xxx
角色:超级管理员、管理员、审核、专员.....
10.遇到的问题
Q: 重装了centos 系统之后,第一次连接 ssh 到该服务器的时候,它会不认,报错如下:
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
A: 解决:
ssh-keygen -R 你的服务器ip