服务器重置实例后的部署工作

· 浏览次数 : 0

小编点评

**docker 安装Redis** 1. **下载并安装 Docker**: ``` sudo yum install -y docker-ce docker-ce-cli containerd.io ``` 2. **启动 Docker 服务**: ``` sudo systemctl start docker ``` 3. **验证 Docker 安装成功**: ``` docker -v ``` **配置nginx反向代理** 1. **创建目录数组**: ``` directories=(\t\"/home/logs\"\t\"/www/xxx-platform\" \t\"/www/xxx-platform-forntend\"\t\"/wwww/test/xxx-platform\"\t\"/www/test/xxx-platform-forntend\") ``` 2. **循环创建每个目录**: ``` for dir in \"${directories[@]}\"; do mkdir -p \"$dir\" if [ -d "$dir" ]; then echo "目录 $dir 创建成功。." else echo "目录 $dir 创建失败。." fi done ``` 3. **安装 Docker、unzip 和 nginx**: ``` sudo yum install -y unzipsudo yum install -y epel-releasesudo yum install -y nginxsudo systemctl start nginxsudo systemctl enable nginx& ``` 4. **上传步骤文件**: ``` docker cp step.sh prod/ ``` 5. **修改nginx配置文件**: ``` # 后端配置文件 server { listen 80; server_name platformapi.xxx.tech; index index.html; client_max_body_size 1024M; error_log /home/nginx/logs/xxx-platform-error.log; access_log /home/nginx/logs/xxx-platform.log; location / { proxy_pass http://127.0.0.1:12001/; } } # 前端配置文件 server { listen 80; server_name platformapi.xxx.tech; location / { proxy_pass http://127.0.0.1:12001/; } } ``` 6. **重启 nginx服务**: ``` systemctl restart nginxps ``` **运行项目** 1. **启动 java17 容器**: ``` docker run -dit -p 12001:12001 -p 9998:9998 -v /www/xxx-platform/log:/home/logs/xxx-platform --name java17-container --restart=always java17-image ``` 2. **启动其他容器**: ``` docker run -d -p 80:80 -v /www/xxx-platform/forntend:/app/forntend --name forntend-container -e JAVA_HOME=/app/jdk17/ ```

正文

参考:https://www.cnblogs.com/warrenwt/p/18215341(docker安装redis)

因为服务器前段时间一直由木马,而且还被挖过矿,想直接重装下系统吧,顺便捋一下整个服务器需要各项配置,以下是我的整理清单

  1. 使用nginx做反向代理,nginx是直接yum安装的
  2. 里面docker跑了我的一个项目的两个环境,一个生产一个测试
  3. 还用docker跑redis就给我这两项目用
  4. java项目里面有step.sh

init.sh创建了我的几个项目目录,安装了docker、unzip、nginx

#!/bin/bash
yum install -y
# 定义多级目录路径数组
directories=(
	"/home/logs"
	"/www/xxx-platform" 
	"/www/xxx-platform-forntend"
	"/wwww/test/xxx-platform"
	"/www/test/xxx-platform-forntend"
)

# 循环创建每个目录
for dir in "${directories[@]}"; do
    # 使用-p选项创建目录,如果目录已经存在则不报错
    mkdir -p "$dir"
    
    # 检查目录是否创建成功
    if [ -d "$dir" ]; then
        echo "目录 $dir 创建成功。"
    else
        echo "目录 $dir 创建失败。"
    fi
done

# 安装Docker
echo "开始安装Docker..."
sudo yum update -y
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 启动Docker服务
sudo systemctl start docker

# 验证Docker是否安装成功
if [ -x "$(command -v docker)" ]; then
    echo "Docker 安装成功。"
else
    echo "Docker 安装失败。"
fi

yum install -y unzip

sudo yum install -y epel-release
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

 然后再去我的java两个项目里面上传我的step.sh,以下以prod的step为样例

#!/bin/sh
docker stop java17-container 
docker rm java17-container
docker rmi java17-image
docker build -t java17-image .
docker run -dit -p 12001:12001 -p 9998:9998  -v /www/xxx-platform/log:/home/logs/xxx-platform --name java17-container --restart=always java17-image

最后nginx啥都不用动直接去/etc/nginx/conf.d/里面上传我之前留下来的几个conf,两个前端+两个后端,下面列一个后端为样例

server {
    listen 80;
    server_name  platformapi.xxx.tech;
    index index.html;
    client_max_body_size 1024M;

    error_log /home/nginx/logs/xxx-platform-error.log;
    access_log /home/nginx/logs/xxx-platform.log;
    
    location / {
    	proxy_pass http://127.0.0.1:12001/;                       
    }
}

然后重启nginx命令systemctl restart nginx

ps:因为项目打包已经防盗jenkins里面去了,只需要去那边修改下连接服务器的凭证密码,后续就直接将打好的包推过来再触发了我的step就行了,so,docker ps没问题ok

与服务器重置实例后的部署工作相似的内容:

服务器重置实例后的部署工作

参考:https://www.cnblogs.com/warrenwt/p/18215341(docker安装redis) 因为服务器前段时间一直由木马,而且还被挖过矿,想直接重装下系统吧,顺便捋一下整个服务器需要各项配置,以下是我的整理清单 使用nginx做反向代理,nginx是直接yum安装的

14.3 Socket 字符串分块传输

首先为什么要实行分块传输字符串,一般而言`Socket`套接字最长发送的字节数为`8192`字节,如果发送的字节超出了此范围则后续部分会被自动截断,此时将字符串进行分块传输将显得格外重要,分块传输的关键在于封装实现一个字符串切割函数,将特定缓冲区内的字串动态切割成一个个小的子块,当切割结束后会得到该数据块的个数,此时通过套接字将个数发送至服务端此时服务端在依次循环接收数据包直到接收完所有数据包之后

一次Python本地cache不当使用导致的内存泄露

## 背景 近期一个大版本上线后,Python编写的api主服务使用内存有较明显上升,服务重启后数小时就会触发机器的90%内存占用告警,分析后发现了本地cache不当使用导致的一个内存泄露问题,这里记录一下分析过程。 ## 问题分析 ### LocalCache实现分析 该cache大概实现代码如下

3大主流分布式事务框架详解(图文总结)

1 简要介绍 随着微服务架构的不断发展,分布式系统逐渐普及到后端领域的每一个角落。 在分布式系统中,跨多个服务的数据一致性一直是一个重大挑战,为解决这一挑战,分布式事务应运而生。 作者在之前的文章《五种分布式事务解决方案》和《4大主流分布式算法介绍》中,详细介绍了分布式事物的解决方案以及实现原理。接

Kubernetes(K8S) Service 介绍

定义一组 Pod 的访问规则 存在的意义 防止 Pod 失联(服务发现),Pod 重启后,IP会变 定义一组 Pod 访问策略,负载均衡 Pod 和 Service 关系 根据 label 和 selector 标签建立关联,实现 Pod 的负载均衡和服务发现,Service 或者Ingress 资

百万并发场景中倒排索引与位图计算的实践

Promise时效控单系统作为时效域的控制系统,在用户下单前、下单后等多个节点均提供服务,是用户下单黄金链路上的重要节点;控单系统主要逻辑是针对用户请求从规则库中找出符合条件的最优规则,并将该规则的时效控制结果返回客户端,比如因为临时疫情等原因针对仓、配、商家、客户四级地址等不同维度进行精细粒度的时效控制。

聊聊Zookeeper的Session会话超时重连

### 概述 简单地说,ZooKeeper的连接与会话就是客户端通过实例化ZooKeeper对象来实现客户端与服务器创建并保持TCP连接的过程。本质上,Session就是一个TCP 长连接。 ### 会话 Session会话的作用: 1. ZK Server 执行任何请求之前,都需要 Client

Dubbo3应用开发—Dubbo注册中心引言

Dubbo注册中心引言 什么是Dubbo注册中心 Dubbo的注册中心,是Dubbo服务治理的⼀个重要的概念,他主要用于 RPC服务集群实例的管理。 注册中心的运行流程 使用注册中心的好处 可以有效的管理RPC集群的健康情况,动态的上线或者下线服务。让我们的服务更加高可用。 Provider与Con

RocketMQ - 消费者Rebalance机制

客户端是通过Rebalance服务做到高可靠的。当发生Broker掉线、消费者实例掉线、Topic 扩容等各种突发情况时,消费者组中的消费者实例是怎么重平衡,以支持全部队列的正常消费的呢? RebalancePullImpl 和 RebalancePushImpl 两个重平衡实现类,分别被 Defa

5种GaussDB ETCD服务异常实例分析处理

摘要:一文带你细数几种ETCD服务异常实例状态。 本文分享自华为云社区《【实例状态】GaussDB ETCD服务异常》,作者:酷哥 。 首先确认是否是虚拟机、网络故障 虚拟机故障导致ETCD服务异常告警 问题现象 管控面上报etcd服务异常告警,虚拟机发生重启,热迁移、冷迁移,HA等动作。 问题分析