【推荐方案】最为最保险的方法,我们建议您可以备份下数据,然后对系统进行重置,后续使用快照来创建云盘,挂载到服务器上拷贝系统盘数据,重新部署环境来恢复业务,可参考下面的步骤:
1、首先参考:https://help.aliyun.com/document_detail/25455.html 创建下实例的系统盘快照,这步非常重要,是备份系统的数据
2、进行实例的系统重置:https://help.aliyun.com/document_detail/25449.html 重置后操作系统会初始化,所有数据清空。
3、如需之前的数据,可以参考:
(1)使用快照创建磁盘:https://help.aliyun.com/document_detail/32317.html
(2)挂载新建的磁盘到实例上:https://help.aliyun.com/document_detail/25446.html,拷贝所需数据,谢谢。
【后续防护】给您提供一些服务器安全防护的建议,这也会有助于提升您服务器的安全性,您可以参考下,具体如下:
1、设置好阿里云 ECS 安全组,只允许指定的 IP 地址进行 3389(远程桌面)、22(SSH)登录,避免服务器管理端口被黑客扫描或爆破。
2、在 ECS 安全组中,只放行必要的业务端口(比如 80、443),其他无关端口不要放行。
3、服务器密码设置复杂点,不要过于太简单。
4、应用软件要经常更新到新版本,不要用老版本的软件。
5、根据阿里云的云监控中心(登录地址:https://yundun.console.aliyun.com/)提示,及时修补高危系统漏洞(注意:修补前,做好快照备份)。
处理过程:
一、系统重置
先将服务器停止运行,在实例-》云盘-》初始化
二、系统重装
1、docker 安装
[root@instance-h9cwbr8m ~]# yum install -y yum-utils
Loaded plugins: langpacks, versionlock
Excluding 1 update due to versionlock (use "yum versionlock status" to show it)
Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest version
Nothing to do
[root@instance-h9cwbr8m ~]#
--设置镜像仓库
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
--先更新yum软件包索引
yum makecache fase
--docker社区、ee企业版 ce为社区版 官方推荐使用ce版,默认安装最新的docker
版本,也可以指定版本安装
yum install docker-ce docker-ce-cli containerd.io
--启动
systemctl start docker
docker version
--查看镜像
docker images
--创建网络
docker network create ele
--常用命令
-- 查看容器
docker ps
docker ps -a
-- 启动
docker start 容器id
docket restart 容器id
-- 停止
docker stop 容器id
复制代码
还可以使用镜像加速器
2、Jdk 安装
地址: http://www.oracle.com/technetwork/articles/javase/index-jsp-138363.html, 选择相应的 .gz 包下载
/usr/local/develop
tar -zxvf jdk-7u60-linux-x64.gz -C /usr/local/develop
vi /etc/profile
-- 追加
PATH=$PATH:/usr/local/nginx/sbin
export JAVA_HOME=/usr/local/develop/jdk1.8.0_391
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
export PATH
-- 生效
source /etc/profile
-- 查看版本
java -version
复制代码
3、nacos 安装
地址:
https://github.com/alibaba/nacos
解压:
/usr/local/develop
修改application.xml
修改Connect URL of DB
--启动
sh startup.sh -m standalone -p 8848
复制代码
4、gateway 安装
spring:
application:
name: gateway
profiles:
default: prod
cloud:
nacos:
discovery:
server-addr: ${REGISTER_HOST:}:${REGISTER_PORT:}
group: prod
namespace: ele-server
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr}
file-extension: yml
namespace: ele-server
group: ele-gateway
extension-configs:
- data-id: gateway.yml
group: ele-gateway
refresh: true
username:
password:
gateway:
routes:
- id: ele-data
uri: lb://ele-data
predicates:
- Path=/api/data/**
filters:
- StripPrefix=1
- id: ele-wechat
uri: lb://ele-wechat
predicates:
- Path=/api/wechat/**
filters:
- StripPrefix=1
- id: ele-cms
uri: lb://ele-cms
predicates:
- Path=/api/cms/**
filters:
- StripPrefix=1
复制代码
跨域
@Configuration
@Slf4j
public class CorsConfig {
@Bean
public CorsWebFilter corsFilter(){
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
source.registerCorsConfiguration("/**", buildConfig());
return new CorsWebFilter(source);
}
private CorsConfiguration buildConfig(){
CorsConfiguration corsConfiguration = new CorsConfiguration();
//在生产环境上最好指定域名,以免产生跨域安全问题
corsConfiguration.addAllowedOriginPattern("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.setAllowCredentials(true);
return corsConfiguration;
}
}
复制代码
5、nginx 安装
sudo yum update
sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx
cd /etc/nginx/nginx.conf
sudo /usr/sbin/nginx -s reload
一个https配置
server {
listen 80;
server_name 域名;
rewrite ^(.*)$ https://${server_name}$1 permanent;
error_log /home/ele/nginx_log/mini/error.log;
access_log /home/ele/nginx_log/mini/access.log;
}
server {
listen 443 ssl;
server_name 域名;
ssl_certificate cert/*.pem; --自行修改
ssl_certificate_key cert/*.key; --自行修改
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root /home/admin/application/cms/dist;
index index.html;
}
}
复制代码
6、xxl-job 安装
-- 下载
docker pull xuxueli/xxl-job-admin:2.3.0
-- 启动
docker run -d \
-e PARAMS="--spring.datasource.url=jdbc:mysql://数据库地址?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=UTC \
--spring.datasource.username= \
--spring.datasource.password= \
--spring.datasource.driver-class-name=com.mysql.jdbc.Driver" \
-p 8080:8080 \
-v /application/datas/xxjob/applogs:/data/applogs \
--name ele-xxl-job-admin-2.3.0 \
-d xuxueli/xxl-job-admin:2.3.0
复制代码
7、rabbitmq 安装
docker search rabbitmq
docker pull rabbitmq
docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:management
-d 后台运行容器;
--name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件;
--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;
RABBITMQ_DEFAULT_PASS:默认用户名的密码)
--延迟插件安装
rabbitmq_delayed_message_exchange
这个插件可以到 https://www.rabbitmq.com/community-plugins.html 下载
--copy插件
docker cp rabbitmq_delayed_message_exchange-3.12.0.ez 容器id:/opt/rabbitmq/plugins
--进入容器内
docker exec -it 容器id /bin/bash
--启动插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
复制代码
8、ecs 添加 sudo、shell 脚本
-- 添加sudo账号
sudo groupadd 组名
sudo useradd -m -g 组名 -s /bin/bash 用户名
sudo passwd 用户名
提示输入秘密
sudo usermod -aG 组名 用户名
su root
vi /etc/sudoers 中找到root权限,添加
用户名 ALL=(ALL) ALL
复制代码
docker日志清理,设置容器日志大小
sudo vim /etc/docker/daemon.json
{
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}
--添加脚本
/usr/local/script/cut_log.sh
cd 日志路径 && find . -type f ( -name ".log" -o -name ".zip" ) -mtime +6 | xargs rm -f;
cd 日志路径 && find . -type f ( -name ".log" -o -name ".zip" ) -mtime +6 | xargs rm -f;
--设置1天清理一次
crontab -e
0 1 * * * sh /usr/local/script/cut_log.sh >/dev/null 2>&1
复制代码
评论