Kaynağa Gözat

初始化容器化部署项目

gengjunfang 4 ay önce
işleme
8724791ecb

+ 343 - 0
README.md

@@ -0,0 +1,343 @@
+# pacsonline  容器化 部署方案
+
+基于 Docker Compose 的 MySQL 8.0 、 Redis 7 、 php-fpm 7.4 、nginx 一键部署方案,支持离线部署。
+
+## 项目结构
+
+```
+deploy-test/
+├── docker-compose.yml          # Docker Compose 编排文件
+├── deploy.sh                   # 一键部署脚本
+├── README.md                   # 说明文档
+├── mysql-init.sql              # MySQL 初始化脚本(用户自定义)
+├── mysql-image.tar             # MySQL 8.0 原始镜像包
+├── redis-image.tar             # Redis 7 镜像包
+├── mysql/
+│   ├── init/                   # MySQL 初始化 SQL 脚本目录(可选)
+│   └── conf/                   # MySQL 配置文件目录(可选)
+├── redis/
+│   └── redis.conf             # Redis 配置文件
+└── data/
+    ├── mysql/                  # MySQL 数据持久化目录
+    └── redis/                  # Redis 数据持久化目录
+```
+
+## 服务配置
+
+### MySQL 8.0
+- **容器名称**: mysql8_deploy
+- **端口**: 3306
+- **数据库**: ris
+- **用户**: ris
+- **密码**: zskk8888
+- **Root 密码**: zskk8888
+- **初始化**: 部署时自动执行 `mysql-init.sql` 脚本(如果存在)
+
+### Redis 7
+- **容器名称**: redis7_deploy
+- **端口**: 6379
+- **密码**: zskk8888
+- **持久化**: 启用 RDB + AOF 双重持久化
+- **最大内存**: 256MB(可在 redis.conf 中修改)
+
+## 快速开始
+
+### 方法一:使用部署脚本(推荐)
+
+```bash
+# 1. 进入项目目录
+cd deploy-test
+
+# 2. (可选)放置自定义的 MySQL 初始化脚本
+# 将你的 SQL 文件命名为 mysql-init.sql 放在当前目录
+
+# 3. 运行部署脚本
+./deploy.sh
+```
+
+**说明**:
+- 如果存在 `mysql-init.sql` 文件,脚本会自动执行该文件初始化数据库
+- 如果不存在,则跳过初始化步骤
+
+### 方法二:手动部署
+
+```bash
+# 1. 进入项目目录
+cd deploy-test
+
+# 2. 启动服务
+docker compose up -d
+
+# 3. 查看服务状态
+docker compose ps
+
+# 4. 查看日志
+docker compose logs -f
+```
+
+## 离线部署
+
+### 准备镜像包(在有网络的机器上)
+
+```bash
+# 1. 拉取并导出 MySQL 原始镜像
+docker pull mysql:8.0
+docker save -o mysql-image.tar mysql:8.0
+
+# 2. 拉取并导出 Redis 镜像
+docker pull redis:7-alpine
+docker save -o redis-image.tar redis:7-alpine
+
+# 3. 打包部署文件
+tar -czf deploy-package.tar.gz \
+    docker-compose.yml \
+    deploy.sh \
+    README.md \
+    mysql/ \
+    redis/ \
+    mysql-image.tar \
+    redis-image.tar \
+    mysql-init.sql  # 如果有自定义初始化脚本
+```
+
+### 目标服务器部署(无网络环境)
+
+```bash
+# 1. 传输部署包到目标服务器
+# 使用 scp、U盘等方式
+
+# 2. 解压部署包
+tar -xzf deploy-package.tar.gz
+cd deploy-test
+
+# 3. (可选)放置自定义的 MySQL 初始化脚本
+# 如果在打包时没有包含,可以在此步骤添加 mysql-init.sql
+
+# 4. 运行部署脚本
+./deploy.sh
+```
+
+**说明**:
+- 镜像文件:`mysql-image.tar` (~757MB) + `redis-image.tar` (~41MB)
+- 部署脚本会自动检测并加载镜像文件
+- 如果存在 `mysql-init.sql`,会自动执行数据库初始化
+
+## 常用命令
+
+### 服务管理
+
+```bash
+# 启动服务
+docker compose up -d
+
+# 停止服务
+docker compose stop
+
+# 重启服务
+docker compose restart
+
+# 删除服务(保留数据)
+docker compose down
+
+# 删除服务及数据卷
+docker compose down -v
+```
+
+### 查看状态和日志
+
+```bash
+# 查看服务状态
+docker compose ps
+
+# 查看所有日志
+docker compose logs
+
+# 查看 MySQL 日志
+docker compose logs -f mysql
+
+# 查看 Redis 日志
+docker compose logs -f redis
+
+# 查看最近 100 行日志
+docker compose logs --tail=100
+```
+
+### 连接服务
+
+**MySQL 连接**
+
+```bash
+# 方法 1: 从容器内连接
+docker exec -it mysql8_deploy mysql -uris -pzskk8888 -D ris
+
+# 方法 2: 从容器内使用 root 连接
+docker exec -it mysql8_deploy mysql -uroot -pzskk8888
+
+# 方法 3: 从宿主机连接(需安装 mysql 客户端)
+mysql -h 127.0.0.1 -P 3306 -uris -pzskk8888 -D ris
+```
+
+**Redis 连接**
+
+```bash
+# 方法 1: 从容器内连接
+docker exec -it redis7_deploy redis-cli -a zskk8888
+
+# 方法 2: 从宿主机连接(需安装 redis-cli)
+redis-cli -h 127.0.0.1 -p 6379 -a zskk8888
+
+# 测试连接
+docker exec -it redis7_deploy redis-cli -a zskk8888 ping
+# 应该返回: PONG
+```
+
+### 数据备份
+
+**MySQL 备份**
+
+```bash
+# 备份单个数据库
+docker exec mysql8_deploy mysqldump -uroot -pzskk8888 ris > backup_ris.sql
+
+# 备份所有数据库
+docker exec mysql8_deploy mysqldump -uroot -pzskk8888 --all-databases > backup_all.sql
+
+# 恢复数据库
+docker exec -i mysql8_deploy mysql -uroot -pzskk8888 ris < backup_ris.sql
+```
+
+**Redis 备份**
+
+```bash
+# 手动触发 RDB 快照
+docker exec redis7_deploy redis-cli -a zskk8888 BGSAVE
+
+# 备份 RDB 文件
+docker cp redis7_deploy:/data/dump.rdb ./backup_redis_dump.rdb
+
+# 备份 AOF 文件
+docker cp redis7_deploy:/data/appendonly.aof ./backup_redis_aof.aof
+```
+
+## 自定义配置
+
+### 修改 MySQL 配置
+
+在 `mysql/conf/` 目录下创建 `.cnf` 配置文件,例如 `my.cnf`:
+
+```ini
+[mysqld]
+max_connections = 200
+character-set-server = utf8mb4
+collation-server = utf8mb4_unicode_ci
+```
+
+### 修改 Redis 配置
+
+编辑 `redis/redis.conf` 文件,修改后重启容器:
+
+```bash
+docker compose restart redis
+```
+
+### MySQL 初始化脚本
+
+**方法 1: 使用 mysql-init.sql(推荐)**
+
+将你的初始化 SQL 文件命名为 `mysql-init.sql` 放在项目根目录,部署脚本会自动执行:
+
+```bash
+# 部署时自动执行
+./deploy.sh
+```
+
+**方法 2: 使用 mysql/init/ 目录**
+
+将 `.sql` 文件放入 `mysql/init/` 目录,容器首次启动时会自动执行(按字母顺序)。
+
+**注意**:
+- 方法 1 每次部署都会执行(适合测试环境)
+- 方法 2 只在首次启动时执行,如需重新初始化需删除数据卷:
+
+```bash
+# 删除数据卷
+docker compose down -v
+
+# 重新启动
+docker compose up -d
+```
+
+## 多架构支持
+
+如果需要在不同 CPU 架构的服务器上部署(x86_64、ARM64),需分别构建镜像:
+
+```bash
+# 在 x86_64 机器上构建
+docker buildx build --platform linux/amd64 -t my-mysql:v1.0-amd64 .
+docker save -o mysql-redis-amd64.tar my-mysql:v1.0-amd64 my-redis:v1.0-amd64
+
+# 在 ARM64 机器上构建
+docker buildx build --platform linux/arm64 -t my-mysql:v1.0-arm64 .
+docker save -o mysql-redis-arm64.tar my-mysql:v1.0-arm64 my-redis:v1.0-arm64
+```
+
+## 故障排查
+
+### 容器无法启动
+
+```bash
+# 查看详细日志
+docker compose logs mysql
+docker compose logs redis
+
+# 检查端口占用
+lsof -i:3306
+lsof -i:6379
+
+# 检查权限
+ls -la data/mysql
+ls -la data/redis
+```
+
+### MySQL 连接失败
+
+```bash
+# 检查容器状态
+docker compose ps
+
+# 测试网络连接
+docker exec mysql8_deploy mysqladmin -uroot -pzskk8888 ping
+
+# 检查用户权限
+docker exec -it mysql8_deploy mysql -uroot -pzskk8888 -e "SELECT user, host FROM mysql.user;"
+```
+
+### Redis 连接失败
+
+```bash
+# 测试 Redis 连接
+docker exec redis7_deploy redis-cli -a zskk8888 ping
+
+# 检查密码配置
+docker exec redis7_deploy redis-cli -a zskk8888 CONFIG GET requirepass
+```
+
+## 安全建议
+
+1. **修改默认密码**: 部署到生产环境前,请修改 `docker-compose.yml` 中的所有密码
+2. **限制访问**: 如果不需要外部访问,可以移除端口映射或使用防火墙限制
+3. **定期备份**: 建议定期备份数据库和 Redis 数据
+4. **更新镜像**: 定期更新到最新的稳定版本以获取安全补丁
+
+## 技术支持
+
+- Docker 官方文档: https://docs.docker.com/
+- MySQL 官方文档: https://dev.mysql.com/doc/
+- Redis 官方文档: https://redis.io/documentation
+
+## 版本信息
+
+- Docker Compose: 3.8+
+- MySQL: 8.0
+- Redis: 7-alpine
+- 创建日期: 2025-10-15

+ 214 - 0
deploy.sh

@@ -0,0 +1,214 @@
+#!/usr/bin/env bash
+
+# 部署脚本 - 一键部署 MySQL 和 Redis
+# 使用方法: chmod +x deploy.sh && ./deploy.sh
+# 支持系统: Ubuntu/Debian/CentOS/RHEL/国产 Linux/macOS
+
+set -e
+
+# 检查 Bash 版本
+if [ -z "$BASH_VERSION" ] || [ "${BASH_VERSION%%.*}" -lt 3 ]; then
+    echo "错误: 需要 Bash 3.0 或更高版本"
+    exit 1
+fi
+
+echo "=========================================="
+echo "  zskk pacsonline 部署脚本"
+echo "=========================================="
+echo ""
+
+# 颜色定义
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+RED='\033[0;31m'
+NC='\033[0m' # No Color
+
+# 检查 Docker 是否安装
+if ! command -v docker &> /dev/null; then
+    echo -e "${RED}错误: Docker 未安装,请先安装 Docker${NC}"
+    exit 1
+fi
+
+echo -e "${GREEN}✓ Docker 已安装${NC}"
+
+# 检查 Docker Compose 是否可用
+if docker compose version &> /dev/null; then
+    COMPOSE_CMD="docker compose"
+    echo -e "${GREEN}✓ Docker Compose V2 可用${NC}"
+elif command -v docker-compose &> /dev/null; then
+    COMPOSE_CMD="docker-compose"
+    echo -e "${GREEN}✓ Docker Compose V1 可用${NC}"
+else
+    echo -e "${RED}错误: Docker Compose 未安装${NC}"
+    exit 1
+fi
+
+echo ""
+echo "=========================================="
+echo "  开始部署..."
+echo "=========================================="
+echo ""
+
+# 自动检测系统架构
+ARCH=$(uname -m)
+case "$ARCH" in
+    x86_64)
+        ARCH_SUFFIX="amd64"
+        ;;
+    aarch64|arm64)
+        ARCH_SUFFIX="arm64"
+        ;;
+    *)
+        echo -e "${RED}错误: 不支持的架构 $ARCH${NC}"
+        exit 1
+        ;;
+esac
+
+echo -e "${GREEN}✓ 检测到系统架构: $ARCH ($ARCH_SUFFIX)${NC}"
+echo ""
+
+# 加载镜像
+echo -e "${YELLOW}加载镜像...${NC}"
+
+# 优先加载带架构后缀的镜像,其次尝试通用名称
+if [ -f "./images/mysql-image-${ARCH_SUFFIX}.tar" ]; then
+    docker load -i "./images/mysql-image-${ARCH_SUFFIX}.tar"
+    echo -e "${GREEN}✓ MySQL 镜像加载完成 (${ARCH_SUFFIX})${NC}"
+elif [ -f "./images/mysql-image.tar" ]; then
+    docker load -i ./images/mysql-image.tar
+    echo -e "${GREEN}✓ MySQL 镜像加载完成${NC}"
+else
+    echo -e "${YELLOW}⚠ 未找到 MySQL 镜像文件${NC}"
+fi
+
+if [ -f "./images/redis-image-${ARCH_SUFFIX}.tar" ]; then
+    docker load -i "./images/redis-image-${ARCH_SUFFIX}.tar"
+    echo -e "${GREEN}✓ Redis 镜像加载完成 (${ARCH_SUFFIX})${NC}"
+elif [ -f "./images/redis-image.tar" ]; then
+    docker load -i redis-image.tar
+    echo -e "${GREEN}✓ Redis 镜像加载完成${NC}"
+else
+    echo -e "${YELLOW}⚠ 未找到 Redis 镜像文件${NC}"
+fi
+
+if [ -f "./images/nginx-image-${ARCH_SUFFIX}.tar" ]; then
+    docker load -i "./images/nginx-image-${ARCH_SUFFIX}.tar"
+    echo -e "${GREEN}✓ Nginx 镜像加载完成 (${ARCH_SUFFIX})${NC}"
+elif [ -f "./images/nginx-image.tar" ]; then
+    docker load -i ./images/nginx-image.tar
+    echo -e "${GREEN}✓ Nginx 镜像加载完成${NC}"
+fi
+
+if [ -f "./images/php-fpm-mysql-7.4-${ARCH_SUFFIX}.tar" ]; then
+    docker load -i "./images/php-fpm-mysql-7.4-${ARCH_SUFFIX}.tar"
+    echo -e "${GREEN}✓ php-fpm-mysql-7.4 镜像加载完成 (${ARCH_SUFFIX})${NC}"
+elif [ -f "./images/php-fpm-mysql-7.4.tar" ]; then
+    docker load -i ./images/php-fpm-mysql-7.4.tar
+    echo -e "${GREEN}✓ Nginx 镜像加载完成${NC}"
+fi
+
+# if [ -f "minio-image-${ARCH_SUFFIX}.tar" ]; then
+#     docker load -i "minio-image-${ARCH_SUFFIX}.tar"
+#     echo -e "${GREEN}✓ MinIO 镜像加载完成 (${ARCH_SUFFIX})${NC}"
+# elif [ -f "minio-image.tar" ]; then
+#     docker load -i minio-image.tar
+#     echo -e "${GREEN}✓ MinIO 镜像加载完成${NC}"
+# fi
+
+echo ""
+
+# 停止已存在的容器(如果有)
+echo -e "${YELLOW}停止旧容器(如果存在)...${NC}"
+$COMPOSE_CMD down 2>/dev/null || true
+
+# 启动服务
+echo -e "${YELLOW}启动服务...${NC}"
+$COMPOSE_CMD up -d
+
+echo ""
+echo -e "${GREEN}等待 MySQL 启动完成...${NC}"
+sleep 15
+
+# 初始化 MySQL 数据库
+if [ -f "mysql-init.sql" ]; then
+    echo ""
+    echo -e "${YELLOW}执行 MySQL 初始化脚本...${NC}"
+
+    # 等待 MySQL 完全就绪(兼容所有系统)
+    COUNTER=0
+    MAX_RETRIES=30
+    while [ $COUNTER -lt $MAX_RETRIES ]; do
+        if docker exec mysql8_deploy mysqladmin ping -h localhost -uroot -Zskk@2025 --silent &> /dev/null; then
+            echo ""
+            echo -e "${GREEN}✓ MySQL 已就绪${NC}"
+            break
+        fi
+        echo -n "."
+        sleep 1
+        COUNTER=$((COUNTER + 1))
+    done
+
+    if [ $COUNTER -eq $MAX_RETRIES ]; then
+        echo ""
+        echo -e "${RED}✗ MySQL 启动超时${NC}"
+        exit 1
+    fi
+    echo ""
+
+    # 执行初始化脚本
+    docker exec -i mysql8_deploy mysql -uroot -Zskk@2025 pacsonline < mysql-init.sql
+
+    if [ $? -eq 0 ]; then
+        echo -e "${GREEN}✓ MySQL 初始化完成${NC}"
+    else
+        echo -e "${RED}✗ MySQL 初始化失败${NC}"
+    fi
+else
+    echo -e "${YELLOW}未找到 mysql-init.sql 文件,跳过数据库初始化${NC}"
+fi
+
+# 检查服务状态
+echo ""
+echo "=========================================="
+echo "  服务状态"
+echo "=========================================="
+$COMPOSE_CMD ps
+
+echo ""
+echo "=========================================="
+echo "  部署完成!"
+echo "=========================================="
+echo ""
+echo -e "${GREEN}MySQL 连接信息:${NC}"
+echo "  主机: localhost"
+echo "  端口: 3306"
+echo "  数据库: pacsonline"
+echo "  用户: pacsonline"
+echo "  密码: zskk@2025"
+echo "  Root 密码: Zskk@2025"
+echo ""
+echo -e "${GREEN}Redis 连接信息:${NC}"
+echo "  主机: localhost"
+echo "  端口: 6379"
+echo "  密码: zskk@2025"
+echo ""
+# echo -e "${GREEN}MinIO 连接信息:${NC}"
+# echo "  API 地址: http://localhost:9000"
+# echo "  控制台: http://localhost:9001"
+# echo "  用户名: admin"
+# echo "  密码: zskk8888"
+# echo ""
+echo -e "${YELLOW}查看日志:${NC}"
+echo "  MySQL: $COMPOSE_CMD logs -f mysql"
+echo "  Redis: $COMPOSE_CMD logs -f redis"
+echo "  MinIO: $COMPOSE_CMD logs -f minio"
+echo ""
+echo -e "${YELLOW}停止服务:${NC}"
+echo "  $COMPOSE_CMD stop"
+echo ""
+echo -e "${YELLOW}重启服务:${NC}"
+echo "  $COMPOSE_CMD restart"
+echo ""
+echo -e "${YELLOW}删除服务:${NC}"
+echo "  $COMPOSE_CMD down"
+echo ""

+ 94 - 0
docker-compose.yml

@@ -0,0 +1,94 @@
+services:
+  mysql:
+    image: mysql:8.0
+    container_name: mysql8_deploy
+    restart: always
+    environment:
+      MYSQL_ROOT_PASSWORD: Zskk@2025
+      MYSQL_DATABASE: pacsonline
+      MYSQL_USER: zskk
+      MYSQL_PASSWORD: zskk@2025
+    ports:
+      - "3306:3306"
+    volumes:
+      - ./mysql/data:/var/lib/mysql
+      - ./mysql/conf:/etc/mysql/conf.d
+      - ./mysql/init:/docker-entrypoint-initdb.d
+    command: --default-authentication-plugin=mysql_native_password
+    networks:
+      - app_network
+
+  redis:
+    image: my-redis:v1.0
+    container_name: redis7_deploy
+    restart: always
+    command: redis-server /etc/redis/redis.conf --requirepass zskk@2025
+    ports:
+      - "6379:6379"
+    volumes:
+      - ./redis/data:/data
+      - ./redis/redis.conf:/etc/redis/redis.conf
+    networks:
+      - app_network
+
+  # minio:
+  #   image: minio/minio
+  #   container_name: minio_deploy
+  #   restart: always
+  #   command: server /data --console-address ":9001"
+  #   environment:
+  #     MINIO_ROOT_USER: admin
+  #     MINIO_ROOT_PASSWORD: zskk8888
+  #   ports:
+  #     - "9002:9002"  # API 端口
+  #     - "9001:9001"  # Web 控制台端口
+  #   volumes:
+  #     - ./data/minio:/data
+  #   networks:
+  #     - app_network
+  #   healthcheck:
+  #     test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
+  #     interval: 30s
+  #     timeout: 20s
+  #     retries: 3
+
+  php-fpm:
+    # build:
+    #   context: ./php-fpm/docker
+    #   dockerfile: Dockerfile
+    #   platforms:
+    #     - linux/amd64
+    #     - linux/arm64
+    image: php-fpm-mysql:7.4-arm64
+    container_name: php_fpm_deploy
+    restart: always
+    ports:
+      - "9000:9000"  # PHP-FPM 端口(与 Nginx 通信)
+    volumes:
+      - ./projects/php:/var/www/html  # PHP 代码目录
+      - ./php-fpm/conf:/usr/local/etc/php/conf.d  # PHP 配置目录
+    networks:
+      - app_network
+    depends_on:
+      - mysql
+      - redis
+
+  nginx:
+    image: nginx:alpine
+    container_name: nginx_deploy
+    restart: always
+    ports:
+      - "80:80"
+      - "443:443"
+    volumes:
+      - ./nginx/conf:/etc/nginx/conf.d  # Nginx 配置目录
+      - ./nginx/logs:/var/log/nginx  # Nginx 日志目录
+      - ./projects/www:/var/www/html  # PHP 代码目录(与 PHP-FPM 共享)
+    networks:
+      - app_network
+    depends_on:
+      - php-fpm
+
+networks:
+  app_network:
+    driver: bridge

Dosya farkı çok büyük olduğundan ihmal edildi
+ 6185 - 0
mysql/init/mysql-init.sql


+ 673 - 0
nginx/conf/out.d/out.conf

@@ -0,0 +1,673 @@
+
+server {
+        listen       9009;
+        #ssl on;
+        server_name  _;#www.kunl-healthcare.com;
+        location / {
+            proxy_pass              http://10.168.250.130:9009/;# 
+            # proxy_pass              https://ris4.pacsonline.cn/;# ris3.0前端
+
+                #proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+    }
+server {
+        listen       9600;
+        server_name  _;
+        location / {
+            proxy_pass              http://zskk-manage/; 
+            # proxy_pass              https://rismanage3.pacsonline.cn/; # ris3.0管理后台
+            # proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            # proxy_set_header HTTP_ZSKK_CRB_NETWORK INNER;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+
+        location /zskkapi/ {
+            # access_log /Users/fuyu/etc/nginx/logs/access.log;
+            # access_log /Users/fuyu/etc/nginx/logs/error.log;
+
+            # add_header Access-Control-Allow-Origin '*';
+            # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+            # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+            proxy_pass              http://zskk-server/;
+            # proxy_pass              https://risserver3.pacsonline.cn/;#ris3.0后台
+            # proxy_pass              http://172.16.100.90:9600/zskkapi/; # ris3.0管理后台
+
+            #proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            # proxy_set_header HTTP_ZSKK_CRB_NETWORK INNER;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+
+
+        location /zskkupload/ {
+            # access_log /Users/fuyu/etc/nginx/logs/access.log;
+            # access_log /Users/fuyu/etc/nginx/logs/error.log;
+
+            # add_header Access-Control-Allow-Origin '*';
+            # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+            # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+            proxy_pass              http://zskk-parse/;
+            # proxy_pass              https://risserver3.pacsonline.cn/;#ris3.0后台
+            # proxy_pass              http://172.16.100.90:9600/zskkapi/; # ris3.0管理后台
+
+            #proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            # proxy_set_header HTTP_ZSKK_CRB_NETWORK INNER;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+        #   本地存储不做处理,后续对象存储或者mini做特殊处理
+        # location /zskkapi/file_type_2/ {
+        #     proxy_pass              http://gyyannex.eos-beijing-7.cmecloud.cn/;# 阿里云 oss dcm下载路径
+        #     proxy_set_header        X-Real-IP $remote_addr;
+        #     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        #     client_max_body_size    2000m;
+        #     proxy_http_version 1.1;
+        #     proxy_set_header Connection "";
+        #     client_body_buffer_size 128k;
+        #     proxy_connect_timeout   90;
+        #     proxy_send_timeout      90;
+        #     proxy_read_timeout      90;
+        #     proxy_buffer_size       4k;
+        #     proxy_buffers           4 32k;
+        #     proxy_busy_buffers_size 64k;
+        #     proxy_temp_file_write_size 64k;
+        # }
+    }
+
+    server {
+        listen       9601;
+        server_name  _;
+        location / {
+            proxy_pass              http://zskk-parse/; 
+            # proxy_pass              https://rismanage3.pacsonline.cn/; # ris3.0管理后台
+            # proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            # proxy_set_header HTTP_ZSKK_CRB_NETWORK INNER;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+
+        #   本地存储不做处理,后续对象存储或者mini做特殊处理
+        # location /zskkapi/file_type_2/ {
+        #     proxy_pass              http://gyyannex.eos-beijing-7.cmecloud.cn/;# 阿里云 oss dcm下载路径
+        #     proxy_set_header        X-Real-IP $remote_addr;
+        #     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        #     client_max_body_size    2000m;
+        #     proxy_http_version 1.1;
+        #     proxy_set_header Connection "";
+        #     client_body_buffer_size 128k;
+        #     proxy_connect_timeout   90;
+        #     proxy_send_timeout      90;
+        #     proxy_read_timeout      90;
+        #     proxy_buffer_size       4k;
+        #     proxy_buffers           4 32k;
+        #     proxy_busy_buffers_size 64k;
+        #     proxy_temp_file_write_size 64k;
+        # }
+    }
+    server {
+        listen       80;
+        #ssl on;
+        server_name  _;#www.kunl-healthcare.com;
+        location / {
+            proxy_pass              http://zskk-ris/;# 
+            # proxy_pass              https://ris4.pacsonline.cn/;# ris3.0前端
+
+                #proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+    }
+
+    server {
+        listen       9602;
+        #ssl on;
+        server_name  _;#www.kunl-healthcare.com;
+        location / {
+            proxy_pass              http://zskk-ris/;# 
+            # proxy_pass              https://ris4.pacsonline.cn/;# ris3.0前端
+
+                #proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+    }
+
+    server {
+        listen       9603;
+        server_name  _;#www.kunl-healthcare.com;
+        location / {
+            proxy_pass              http://zskk-pacs;
+            # proxy_pass              https://ppacsview.pacsonline.cn;#影像浏览器
+            # proxy_pass              http://172.16.100.90:9603/;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+        location /query/ {
+            proxy_pass               http://zskk-query;
+            # proxy_pass               https://query.pacsonline.cn;
+            #proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+
+        # 移动云对象存储 https://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn http://36.133.125.109:9999/yd/
+
+        # 可能需要做minio的特殊处理
+
+        # location /yd/ {
+        #     # add_header Access-Control-Allow-Origin '*';
+        #     # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+        #     # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+        #     proxy_pass              https://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/;# 阿里云 oss dcm下载路径
+        #     # proxy_pass              http://172.16.100.90:9603/yd/;
+        #     #proxy_set_header        Host $host;
+        #     proxy_set_header        X-Real-IP $remote_addr;
+        #     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        #     client_max_body_size    2000m;
+        #     proxy_http_version 1.1;
+        #     proxy_set_header Connection "";
+        #     client_body_buffer_size 128k;
+        #     proxy_connect_timeout   90;
+        #     proxy_send_timeout      90;
+        #     proxy_read_timeout      90;
+        #     proxy_buffer_size       4k;
+        #     proxy_buffers           4 32k;
+        #     proxy_busy_buffers_size 64k;
+        #     proxy_temp_file_write_size 64k;
+        # }
+
+        # location /yd602/ {
+        #     # add_header Access-Control-Allow-Origin '*';
+        #     # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+        #     # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+        #     proxy_pass              https://gyydcm.eos.jinan-4.cmecloud.cn/;# 阿里云 oss dcm下载路径
+        #     # proxy_pass              http://172.16.100.90:9603/yd602/;
+        #     #proxy_set_header        Host $host;
+        #     proxy_set_header        X-Real-IP $remote_addr;
+        #     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        #     client_max_body_size    2000m;
+        #     proxy_http_version 1.1;
+        #     proxy_set_header Connection "";
+        #     client_body_buffer_size 128k;
+        #     proxy_connect_timeout   90;
+        #     proxy_send_timeout      90;
+        #     proxy_read_timeout      90;
+        #     proxy_buffer_size       4k;
+        #     proxy_buffers           4 32k;
+        #     proxy_busy_buffers_size 64k;
+        #     proxy_temp_file_write_size 64k;
+        # }
+
+        # location /yd603/ {
+        #     # add_header Access-Control-Allow-Origin '*';
+        #     # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+        #     # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+        #     proxy_pass              https://dcmgyy.eos-beijing-7.cmecloud.cn/;# 阿里云 oss dcm下载路径
+        #     # proxy_pass              http://172.16.100.90:9603/yd602/;
+        #     #proxy_set_header        Host $host;
+        #     proxy_set_header        X-Real-IP $remote_addr;
+        #     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        #     client_max_body_size    2000m;
+        #     proxy_http_version 1.1;
+        #     proxy_set_header Connection "";
+        #     client_body_buffer_size 128k;
+        #     proxy_connect_timeout   90;
+        #     proxy_send_timeout      90;
+        #     proxy_read_timeout      90;
+        #     proxy_buffer_size       4k;
+        #     proxy_buffers           4 32k;
+        #     proxy_busy_buffers_size 64k;
+        #     proxy_temp_file_write_size 64k;
+        # }
+
+        
+    }
+
+    server {
+        listen       9604;
+        #ssl on;
+        server_name  _;#www.kunl-healthcare.com;
+        location / {
+            proxy_pass              http://zskk-wechat/;# 
+            # proxy_pass              https://ris4.pacsonline.cn/;# ris3.0前端
+
+                #proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+    }
+server {
+        # dcm下载端口配置
+        listen       9999;
+        server_name  _;#www.kunl-healthcare.com;
+        # 移动云对象存储 https://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn http://36.133.125.109:9999/yd/
+        # 可能需要做minio的特殊处理
+       
+    #     location /yd/ {
+
+    # #gzip模块设置
+    # #开启gzip压缩输出
+    # # gzip on;
+    # # #最小压缩文件大小
+    # # gzip_min_length 1k;
+    # # #压缩缓冲区
+    # # gzip_buffers 4 16k;
+    # # #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
+    # # # gzip_http_version 1.0;
+    # # #压缩等级
+    # # # gzip_comp_level 2;
+    # # #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
+    # # gzip_types text/plain application/javascript application/x-javascript text/css application/xml application/octet-stream;
+    # # #选择支持vary header,可以让前端的缓存服务器缓存经过gzip压缩的页面;
+    # # gzip_vary on;
+
+    #         # add_header Access-Control-Allow-Origin '*';
+    #         # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+    #         # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+    #     #    resolver 8.8.8.8;
+    #         # if ($request_uri ~* ^/yd/(.*)$) {                 
+    #         #     resolver 8.8.8.8;
+    #         #     # proxy_pass http://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/;       
+    #         #     proxy_pass https://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/$1;  
+    #         # }
+
+
+    #         resolver 8.8.8.8;
+    #         if ($request_uri ~* ^/yd/(.*)$) {                 
+    #             # proxy_pass http://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/;       
+    #             proxy_pass https://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/$1;
+    #         # proxy_pass              http://172.16.100.90:9999/yd/$1;  
+    #         }
+    #         # proxy_pass http://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/;       
+    #         #proxy_set_header        Host $host;
+    #         proxy_set_header        X-Real-IP $remote_addr;
+    #         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+    #         client_max_body_size    2000m;
+    #         proxy_http_version 1.1;
+    #         proxy_set_header Connection "";
+    #         client_body_buffer_size 128k;
+    #         proxy_connect_timeout   90;
+    #         proxy_send_timeout      90;
+    #         proxy_read_timeout      90;
+    #         proxy_buffer_size       4k;
+    #         proxy_buffers           4 32k;
+    #         proxy_busy_buffers_size 64k;
+    #         proxy_temp_file_write_size 64k;
+    #     }
+
+    #     location /yd602/ {
+
+    # #gzip模块设置
+    # #开启gzip压缩输出
+    # # gzip on;
+    # # #最小压缩文件大小
+    # # gzip_min_length 1k;
+    # # #压缩缓冲区
+    # # gzip_buffers 4 16k;
+    # # #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
+    # # # gzip_http_version 1.0;
+    # # #压缩等级
+    # # # gzip_comp_level 2;
+    # # #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
+    # # gzip_types text/plain application/javascript application/x-javascript text/css application/xml application/octet-stream;
+    # # #选择支持vary header,可以让前端的缓存服务器缓存经过gzip压缩的页面;
+    # # gzip_vary on;
+
+    #         # add_header Access-Control-Allow-Origin '*';
+    #         # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+    #         # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+    #     #    resolver 8.8.8.8;
+    #         # if ($request_uri ~* ^/yd/(.*)$) {                 
+    #         #     resolver 8.8.8.8;
+    #         #     # proxy_pass http://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/;       
+    #         #     proxy_pass https://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/$1;  
+    #         # }
+
+
+    #         resolver 8.8.8.8;
+    #         if ($request_uri ~* ^/yd602/(.*)$) {                 
+    #             # proxy_pass http://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/;       
+    #             proxy_pass https://gyydcm.eos.jinan-4.cmecloud.cn/$1;  
+    #         # proxy_pass              http://172.16.100.90:9999/yd602/$1;  
+    #         }
+    #         # proxy_pass http://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/;       
+    #         #proxy_set_header        Host $host;
+    #         proxy_set_header        X-Real-IP $remote_addr;
+    #         proxy_ssl_server_name on;
+    #         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+    #         client_max_body_size    2000m;
+    #         proxy_http_version 1.1;
+    #         proxy_set_header Connection "";
+    #         client_body_buffer_size 128k;
+    #         proxy_connect_timeout   90;
+    #         proxy_send_timeout      90;
+    #         proxy_read_timeout      90;
+    #         proxy_buffer_size       4k;
+    #         proxy_buffers           4 32k;
+    #         proxy_busy_buffers_size 64k;
+    #         proxy_temp_file_write_size 64k;
+    #     }
+
+    #     location /yd603/ {
+
+    # #gzip模块设置
+    # #开启gzip压缩输出
+    # # gzip on;
+    # # #最小压缩文件大小
+    # # gzip_min_length 1k;
+    # # #压缩缓冲区
+    # # gzip_buffers 4 16k;
+    # # #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
+    # # # gzip_http_version 1.0;
+    # # #压缩等级
+    # # # gzip_comp_level 2;
+    # # #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
+    # # gzip_types text/plain application/javascript application/x-javascript text/css application/xml application/octet-stream;
+    # # #选择支持vary header,可以让前端的缓存服务器缓存经过gzip压缩的页面;
+    # # gzip_vary on;
+
+    #         # add_header Access-Control-Allow-Origin '*';
+    #         # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+    #         # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+    #     #    resolver 8.8.8.8;
+    #         # if ($request_uri ~* ^/yd/(.*)$) {                 
+    #         #     resolver 8.8.8.8;
+    #         #     # proxy_pass http://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/;       
+    #         #     proxy_pass https://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/$1;  
+    #         # }
+
+
+    #         resolver 8.8.8.8;
+    #         if ($request_uri ~* ^/yd603/(.*)$) {                 
+    #             # proxy_pass http://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/;       
+    #             proxy_pass https://dcmgyy.eos-beijing-7.cmecloud.cn/$1;  
+    #         # proxy_pass              http://172.16.100.90:9999/yd602/$1;  
+    #         }
+    #         # proxy_pass http://new-bucket-gyydcm.eos-jinan-1.cmecloud.cn/;       
+    #         #proxy_set_header        Host $host;
+    #         proxy_set_header        X-Real-IP $remote_addr;
+    #         proxy_ssl_server_name on;
+    #         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+    #         client_max_body_size    2000m;
+    #         proxy_http_version 1.1;
+    #         proxy_set_header Connection "";
+    #         client_body_buffer_size 128k;
+    #         proxy_connect_timeout   90;
+    #         proxy_send_timeout      90;
+    #         proxy_read_timeout      90;
+    #         proxy_buffer_size       4k;
+    #         proxy_buffers           4 32k;
+    #         proxy_busy_buffers_size 64k;
+    #         proxy_temp_file_write_size 64k;
+    #     }
+
+        # 阿里云对象存储 https://static.dcm.pacsonline.cn/ http://36.133.125.109:9999/oss/
+        # location /oss/ {
+        #     # add_header Access-Control-Allow-Origin '*';
+        #     # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+        #     # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+        #     proxy_pass              https://static.dcm.pacsonline.cn/;# 阿里云 oss dcm下载路径
+        #     # proxy_pass              http://172.16.100.90:9999/oss/;  
+        #     #proxy_set_header        Host $host;
+        #     proxy_set_header        X-Real-IP $remote_addr;
+        #     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        #     client_max_body_size    2000m;
+        #     proxy_http_version 1.1;
+        #     proxy_set_header Connection "";
+        #     client_body_buffer_size 128k;
+        #     proxy_connect_timeout   90;
+        #     proxy_send_timeout      90;
+        #     proxy_read_timeout      90;
+        #     proxy_buffer_size       4k;
+        #     proxy_buffers           4 32k;
+        #     proxy_busy_buffers_size 64k;
+        #     proxy_temp_file_write_size 64k;
+        # }
+
+
+        # dicom影像列表查询服务 https://query.pacsonline.cn http://36.133.125.109:9999/query/
+        location /query/ {
+            # add_header Access-Control-Allow-Origin '*';
+            # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+            # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+            proxy_pass              http://zskk-query;# dcm 上传浪潮云 请求 回调
+            # proxy_pass              https://query.pacsonline.cn;# dcm 上传浪潮云 请求 回调
+            # proxy_pass              http://172.16.100.90:9999/query/;  
+            #proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+
+        # dicom影像列表查询服务 https://query.pacsonline.cn/ http://36.133.125.109:9999/query/
+        location /study/ {
+            # add_header Access-Control-Allow-Origin '*';
+            # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+            # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+            # proxy_pass              https://query.pacsonline.cn/;# dcm 上传浪潮云 请求 回调
+            proxy_pass              http://zskk-query/;# dcm 上传浪潮云 请求 回调
+            # proxy_pass              http://172.16.100.90:9999/study/;  
+            #proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+
+        location /minio2/ {
+            # add_header Access-Control-Allow-Origin '*';
+            # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+            # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+            proxy_pass              http://zskk-dcm/;#
+            #proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+
+        location /ybdxfsyy/ {
+            # add_header Access-Control-Allow-Origin '*';
+            # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+            # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+            proxy_pass              http://10.168.252.5:9000/;#
+            #proxy_set_header        Host $host;
+            proxy_set_header        X-Real-IP $remote_addr;
+            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+            client_max_body_size    2000m;
+            proxy_http_version 1.1;
+            proxy_set_header Connection "";
+            client_body_buffer_size 128k;
+            proxy_connect_timeout   90;
+            proxy_send_timeout      90;
+            proxy_read_timeout      90;
+            proxy_buffer_size       4k;
+            proxy_buffers           4 32k;
+            proxy_busy_buffers_size 64k;
+            proxy_temp_file_write_size 64k;
+        }
+        # 浪潮云对象存储 https://zskkdcm.infile.inspurcloud.cn/ http://36.133.125.109:9999/lcoss/
+        # location /lcoss/ {
+        #     # add_header Access-Control-Allow-Origin '*';
+        #     # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+        #     # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+        #     #proxy_pass              https://zskkdcm.infile.inspurcloud.cn/;#浪 潮 ufile dcm下载路径
+        #     proxy_pass              https://zskkdicom.oss.cn-north-4.inspurcloudoss.com/;#浪 潮华北四 ufile dcm下载路径
+        #     # proxy_pass              http://172.16.100.90:9999/lcoss/;  
+        #     #proxy_set_header        Host $host;
+        #     proxy_set_header        X-Real-IP $remote_addr;
+        #     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        #     client_max_body_size    2000m;
+        #     proxy_http_version 1.1;
+        #     proxy_set_header Connection "";
+        #     client_body_buffer_size 128k;
+        #     proxy_connect_timeout   90;
+        #     proxy_send_timeout      90;
+        #     proxy_read_timeout      90;
+        #     proxy_buffer_size       4k;
+        #     proxy_buffers           4 32k;
+        #     proxy_busy_buffers_size 64k;
+        #     proxy_temp_file_write_size 64k;
+        # }
+        # fastdfs dcm存储 https://dcm.pacsonline.cn/ http://36.133.125.109:9999/
+        # 可能需要做minio的特殊处理
+        # location / {
+        #     proxy_pass              http://dcm.pacsonline.cn/;# dcm fastdfs 下载路径
+        #     # proxy_pass              http://172.16.100.90:9999/;  
+        #         #proxy_set_header        Host $host;
+        #     proxy_set_header        X-Real-IP $remote_addr;
+        #     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        #     client_max_body_size    2000m;
+        #     proxy_http_version 1.1;
+        #     proxy_set_header Connection "";
+        #     client_body_buffer_size 128k;
+        #     proxy_connect_timeout   90;
+        #     proxy_send_timeout      90;
+        #     proxy_read_timeout      90;
+        #     proxy_buffer_size       4k;
+        #     proxy_buffers           4 32k;
+        #     proxy_busy_buffers_size 64k;
+        #     proxy_temp_file_write_size 64k;
+        # }
+    }

+ 34 - 0
nginx/conf/server.d/zskk-manage.conf

@@ -0,0 +1,34 @@
+server {
+    listen 19620;
+    server_name _;
+    charset utf-8;
+    access_log /data/logs/nginx/manage.access.log;
+    error_log /data/logs/nginx/manage.error.log;
+    index index.html index.htm;
+    root /data/code/manage_dm/zskk_new_manage/public;
+    
+    location / {
+        index index.php index.html index.htm;
+        if (!-e $request_filename) {
+            rewrite ^(.*)$ /index.php?s=/$1 last;
+            break;
+        }
+        if ( -f $request_filename) {
+            break;
+        }
+    }
+ 
+	
+    location ~ .php($|/) {
+        fastcgi_pass    php_fpm_deploy:9000;
+        fastcgi_connect_timeout 300s;
+        fastcgi_send_timeout 300s;
+        fastcgi_read_timeout 300s;
+        fastcgi_pass    php-fpm;
+        fastcgi_index   index.php;
+        fastcgi_split_path_info ^(.+.php)(.*)$;
+        fastcgi_param   PATH_INFO $fastcgi_path_info;
+        fastcgi_param   SCRIPT_FILENAME $document_root/$fastcgi_script_name;
+        include         fastcgi_params;
+    }
+}

+ 9 - 0
nginx/conf/server.d/zskk-pacs.conf

@@ -0,0 +1,9 @@
+server {
+    listen 19603;
+    server_name _;
+    charset utf-8;
+    access_log /data/logs/nginx/pacs.access.log;
+    error_log /data/logs/nginx/pacs.error.log;
+    index index.html index.htm;
+    root /data/www/pacs;
+}

+ 9 - 0
nginx/conf/server.d/zskk-ris.conf

@@ -0,0 +1,9 @@
+server {
+    listen 19602;
+    server_name _;
+    charset utf-8;
+    access_log /data/logs/nginx/ris.access.log;
+    error_log /data/logs/nginx/ris.error.log;
+    index index.html index.htm;
+    root /data/www/ris;
+}

+ 82 - 0
nginx/conf/server.d/zskk-server.conf

@@ -0,0 +1,82 @@
+
+server {
+    listen 19600;
+    server_name _;
+    charset utf-8;
+    access_log /data/logs/nginx/server.access.log main;
+    error_log /data/logs/nginx/server.error.log;
+    index index.html index.htm;
+    root /data/code/ris_dm/server/public;
+    
+    client_max_body_size    1024m;
+    proxy_ignore_client_abort on;
+        
+	
+    location  ~ .(js|css|gif|jpg|jpeg|png|html)$ {
+        root /data/code/ris_dm/server/public;
+    }
+	
+    location ^~ /uploads/ {
+        root /data/code/ris_dm/server/public;
+    }
+	
+    location / {
+        index index.php index.html index.htm;
+        if (!-e $request_filename) {
+            rewrite ^(.*)$ /index.php?s=/$1 last;
+            break;
+        }
+        if ( -f $request_filename) {
+            break;
+        }
+    }
+ 
+#  location /ris_secret/ {
+#         proxy_pass              https://rissecret.pacsonline.cn/;
+#         #proxy_set_header        Host $host;
+#         proxy_set_header        X-Real-IP $remote_addr;
+#         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+#         client_max_body_size    2000m;
+#         client_body_buffer_size 128k;
+#         proxy_connect_timeout   90;
+#         proxy_send_timeout      90;
+#         proxy_read_timeout      90;
+#         proxy_buffer_size       4k;
+#         proxy_buffers           4 32k;
+#         proxy_busy_buffers_size 64k;
+#         proxy_temp_file_write_size 64k;
+#     }
+
+    # location ^~ /file_type_2/ {
+    #     # add_header Access-Control-Allow-Origin '*';
+    #     # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+    #     # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+    #     # proxy_pass              http://gyyannex.eos-beijing-7.cmecloud-internal.cn/;# 移动云 dcm下载路径
+    #     proxy_pass              http://gyyannex.eos-beijing-7.cmecloud.cn/;#  移动云 dcm下载路径
+    #     # proxy_pass              http://172.16.100.90:9603/yd602/;
+    #     #proxy_set_header        Host $host;
+    #     proxy_set_header        X-Real-IP $remote_addr;
+    #     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+    #     client_max_body_size    2000m;
+    #     proxy_http_version 1.1;
+    #     proxy_set_header Connection "";
+    #     client_body_buffer_size 128k;
+    #     proxy_connect_timeout   90;
+    #     proxy_send_timeout      90;
+    #     proxy_read_timeout      90;
+    #     proxy_buffer_size       4k;
+    #     proxy_buffers           4 32k;
+    #     proxy_busy_buffers_size 64k;
+    #     proxy_temp_file_write_size 64k;
+    # }
+	
+    location ~ .php($|/) {
+        # fastcgi_pass    127.0.0.1:9000;
+        fastcgi_pass    php-fpm;
+        fastcgi_index   index.php;
+        fastcgi_split_path_info ^(.+.php)(.*)$;
+        fastcgi_param   PATH_INFO $fastcgi_path_info;
+        fastcgi_param   SCRIPT_FILENAME $document_root/$fastcgi_script_name;
+        include         fastcgi_params;
+    }
+}

+ 44 - 0
nginx/conf/server.d/zskk-wechat-server.conf

@@ -0,0 +1,44 @@
+
+server {
+    listen 19614;
+    server_name _;
+    charset utf-8;
+    access_log /data/logs/nginx/wechat-server.access.log main;
+    error_log /data/logs/nginx/wechat-server.error.log;
+    index index.html index.htm;
+    root /data/wechat/public;
+    
+    client_max_body_size    1024m;
+    proxy_ignore_client_abort on;
+        
+	
+    location  ~ .(js|css|gif|jpg|jpeg|png|html)$ {
+        root /data/wechat/public;
+    }
+	
+    location ^~ /uploads/ {
+        root /data/wechat/public;
+    }
+	
+    location / {
+        index index.php index.html index.htm;
+        if (!-e $request_filename) {
+            rewrite ^(.*)$ /index.php?s=/$1 last;
+            break;
+        }
+        if ( -f $request_filename) {
+            break;
+        }
+    }
+ 
+	
+    location ~ .php($|/) {
+        # fastcgi_pass    127.0.0.1:9000;
+        fastcgi_pass    php-fpm;
+        fastcgi_index   index.php;
+        fastcgi_split_path_info ^(.+.php)(.*)$;
+        fastcgi_param   PATH_INFO $fastcgi_path_info;
+        fastcgi_param   SCRIPT_FILENAME $document_root/$fastcgi_script_name;
+        include         fastcgi_params;
+    }
+}

+ 37 - 0
nginx/conf/server.d/zskk-wechat.conf

@@ -0,0 +1,37 @@
+server {
+    listen 19604;
+    server_name _;
+    charset utf-8;
+    access_log /data/logs/nginx/wechat.access.log;
+    error_log /data/logs/nginx/wechat.error.log;
+    index index.html index.htm;
+    root /data/www/wechat;
+
+    location /wechat-server/ {
+        # access_log /Users/fuyu/etc/nginx/logs/access.log;
+        # access_log /Users/fuyu/etc/nginx/logs/error.log;
+
+        # add_header Access-Control-Allow-Origin '*';
+        # add_header Access-Control-Allow-Headers 'X-Requested-With,Content-Type';
+        # add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
+        proxy_pass              http://zskk-wechat-server/;
+        # proxy_pass              https://risserver3.pacsonline.cn/;#ris3.0后台
+        # proxy_pass              http://172.16.100.90:9600/zskkapi/; # ris3.0管理后台
+
+        #proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        # proxy_set_header HTTP_ZSKK_CRB_NETWORK INNER;
+        client_max_body_size    2000m;
+        proxy_http_version 1.1;
+        proxy_set_header Connection "";
+        client_body_buffer_size 128k;
+        proxy_connect_timeout   90;
+        proxy_send_timeout      90;
+        proxy_read_timeout      90;
+        proxy_buffer_size       4k;
+        proxy_buffers           4 32k;
+        proxy_busy_buffers_size 64k;
+        proxy_temp_file_write_size 64k;
+    }
+}

+ 3 - 0
nginx/conf/upstreams.d/php-fpm.conf

@@ -0,0 +1,3 @@
+upstream php-fpm {
+    server 127.0.0.1:9000;
+}

+ 4 - 0
nginx/conf/upstreams.d/zskk-dcm.conf

@@ -0,0 +1,4 @@
+upstream zskk-dcm {
+    # server 10.168.250.130:9010;
+    server 10.168.250.11:9010;
+}

+ 3 - 0
nginx/conf/upstreams.d/zskk-manage.conf

@@ -0,0 +1,3 @@
+upstream zskk-manage {
+    server 127.0.0.1:19620;
+}

+ 3 - 0
nginx/conf/upstreams.d/zskk-pacs.conf

@@ -0,0 +1,3 @@
+upstream zskk-pacs {
+    server 127.0.0.1:19603;
+}

+ 3 - 0
nginx/conf/upstreams.d/zskk-parse.conf

@@ -0,0 +1,3 @@
+upstream zskk-parse {
+    server 127.0.0.1:9703;
+}

+ 3 - 0
nginx/conf/upstreams.d/zskk-query.conf

@@ -0,0 +1,3 @@
+upstream zskk-query {
+    server 127.0.0.1:9704;
+}

+ 3 - 0
nginx/conf/upstreams.d/zskk-ris.conf

@@ -0,0 +1,3 @@
+upstream zskk-ris {
+    server 127.0.0.1:19602;
+}

+ 3 - 0
nginx/conf/upstreams.d/zskk-server.conf

@@ -0,0 +1,3 @@
+upstream zskk-server {
+    server 127.0.0.1:19600;
+}

+ 3 - 0
nginx/conf/upstreams.d/zskk-wechat-server.conf

@@ -0,0 +1,3 @@
+upstream zskk-wechat-server {
+    server 127.0.0.1:19614;
+}

+ 3 - 0
nginx/conf/upstreams.d/zskk-wechat.conf

@@ -0,0 +1,3 @@
+upstream zskk-wechat {
+    server 127.0.0.1:19604;
+}

+ 0 - 0
nginx/logs/access.log


+ 373 - 0
nginx/logs/error.log

@@ -0,0 +1,373 @@
+2025/10/20 08:59:13 [notice] 1#1: using the "epoll" event method
+2025/10/20 08:59:13 [notice] 1#1: nginx/1.29.2
+2025/10/20 08:59:13 [notice] 1#1: built by gcc 14.2.0 (Alpine 14.2.0) 
+2025/10/20 08:59:13 [notice] 1#1: OS: Linux 6.10.14-linuxkit
+2025/10/20 08:59:13 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
+2025/10/20 08:59:13 [notice] 1#1: start worker processes
+2025/10/20 08:59:13 [notice] 1#1: start worker process 19
+2025/10/20 08:59:13 [notice] 1#1: start worker process 20
+2025/10/20 08:59:13 [notice] 1#1: start worker process 21
+2025/10/20 08:59:13 [notice] 1#1: start worker process 22
+2025/10/20 08:59:13 [notice] 1#1: start worker process 23
+2025/10/20 08:59:13 [notice] 1#1: start worker process 24
+2025/10/20 08:59:13 [notice] 1#1: start worker process 25
+2025/10/20 08:59:13 [notice] 1#1: start worker process 26
+2025/10/20 09:07:40 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down
+2025/10/20 09:07:40 [notice] 20#20: gracefully shutting down
+2025/10/20 09:07:40 [notice] 19#19: gracefully shutting down
+2025/10/20 09:07:40 [notice] 23#23: gracefully shutting down
+2025/10/20 09:07:40 [notice] 26#26: gracefully shutting down
+2025/10/20 09:07:40 [notice] 24#24: gracefully shutting down
+2025/10/20 09:07:40 [notice] 23#23: exiting
+2025/10/20 09:07:40 [notice] 20#20: exiting
+2025/10/20 09:07:40 [notice] 21#21: gracefully shutting down
+2025/10/20 09:07:40 [notice] 26#26: exiting
+2025/10/20 09:07:40 [notice] 22#22: gracefully shutting down
+2025/10/20 09:07:40 [notice] 25#25: gracefully shutting down
+2025/10/20 09:07:40 [notice] 20#20: exit
+2025/10/20 09:07:40 [notice] 25#25: exiting
+2025/10/20 09:07:40 [notice] 19#19: exiting
+2025/10/20 09:07:40 [notice] 25#25: exit
+2025/10/20 09:07:40 [notice] 24#24: exiting
+2025/10/20 09:07:40 [notice] 21#21: exiting
+2025/10/20 09:07:40 [notice] 22#22: exiting
+2025/10/20 09:07:40 [notice] 26#26: exit
+2025/10/20 09:07:40 [notice] 23#23: exit
+2025/10/20 09:07:40 [notice] 19#19: exit
+2025/10/20 09:07:40 [notice] 24#24: exit
+2025/10/20 09:07:40 [notice] 21#21: exit
+2025/10/20 09:07:40 [notice] 22#22: exit
+2025/10/20 09:07:40 [notice] 1#1: signal 17 (SIGCHLD) received from 25
+2025/10/20 09:07:40 [notice] 1#1: worker process 22 exited with code 0
+2025/10/20 09:07:40 [notice] 1#1: worker process 19 exited with code 0
+2025/10/20 09:07:40 [notice] 1#1: worker process 20 exited with code 0
+2025/10/20 09:07:40 [notice] 1#1: worker process 21 exited with code 0
+2025/10/20 09:07:40 [notice] 1#1: worker process 25 exited with code 0
+2025/10/20 09:07:40 [notice] 1#1: signal 29 (SIGIO) received
+2025/10/20 09:07:40 [notice] 1#1: signal 17 (SIGCHLD) received from 22
+2025/10/20 09:07:40 [notice] 1#1: signal 17 (SIGCHLD) received from 26
+2025/10/20 09:07:40 [notice] 1#1: worker process 24 exited with code 0
+2025/10/20 09:07:40 [notice] 1#1: worker process 23 exited with code 0
+2025/10/20 09:07:40 [notice] 1#1: worker process 26 exited with code 0
+2025/10/20 09:07:40 [notice] 1#1: exit
+2025/10/20 09:07:40 [notice] 1#1: using the "epoll" event method
+2025/10/20 09:07:40 [notice] 1#1: nginx/1.29.2
+2025/10/20 09:07:40 [notice] 1#1: built by gcc 14.2.0 (Alpine 14.2.0) 
+2025/10/20 09:07:40 [notice] 1#1: OS: Linux 6.10.14-linuxkit
+2025/10/20 09:07:40 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
+2025/10/20 09:07:40 [notice] 1#1: start worker processes
+2025/10/20 09:07:40 [notice] 1#1: start worker process 20
+2025/10/20 09:07:40 [notice] 1#1: start worker process 21
+2025/10/20 09:07:40 [notice] 1#1: start worker process 22
+2025/10/20 09:07:40 [notice] 1#1: start worker process 23
+2025/10/20 09:07:40 [notice] 1#1: start worker process 24
+2025/10/20 09:07:40 [notice] 1#1: start worker process 25
+2025/10/20 09:07:40 [notice] 1#1: start worker process 26
+2025/10/20 09:07:40 [notice] 1#1: start worker process 27
+2025/10/20 09:15:29 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down
+2025/10/20 09:15:29 [notice] 21#21: gracefully shutting down
+2025/10/20 09:15:29 [notice] 20#20: gracefully shutting down
+2025/10/20 09:15:29 [notice] 22#22: gracefully shutting down
+2025/10/20 09:15:29 [notice] 23#23: gracefully shutting down
+2025/10/20 09:15:29 [notice] 21#21: exiting
+2025/10/20 09:15:29 [notice] 20#20: exiting
+2025/10/20 09:15:29 [notice] 24#24: gracefully shutting down
+2025/10/20 09:15:29 [notice] 25#25: gracefully shutting down
+2025/10/20 09:15:29 [notice] 24#24: exiting
+2025/10/20 09:15:29 [notice] 26#26: gracefully shutting down
+2025/10/20 09:15:29 [notice] 27#27: gracefully shutting down
+2025/10/20 09:15:29 [notice] 22#22: exiting
+2025/10/20 09:15:29 [notice] 23#23: exiting
+2025/10/20 09:15:29 [notice] 21#21: exit
+2025/10/20 09:15:29 [notice] 20#20: exit
+2025/10/20 09:15:29 [notice] 25#25: exiting
+2025/10/20 09:15:29 [notice] 24#24: exit
+2025/10/20 09:15:29 [notice] 26#26: exiting
+2025/10/20 09:15:29 [notice] 27#27: exiting
+2025/10/20 09:15:29 [notice] 23#23: exit
+2025/10/20 09:15:29 [notice] 22#22: exit
+2025/10/20 09:15:29 [notice] 25#25: exit
+2025/10/20 09:15:29 [notice] 26#26: exit
+2025/10/20 09:15:29 [notice] 27#27: exit
+2025/10/20 09:15:29 [notice] 1#1: signal 17 (SIGCHLD) received from 21
+2025/10/20 09:15:29 [notice] 1#1: worker process 21 exited with code 0
+2025/10/20 09:15:29 [notice] 1#1: signal 29 (SIGIO) received
+2025/10/20 09:15:29 [notice] 1#1: signal 17 (SIGCHLD) received from 26
+2025/10/20 09:15:29 [notice] 1#1: worker process 20 exited with code 0
+2025/10/20 09:15:29 [notice] 1#1: worker process 22 exited with code 0
+2025/10/20 09:15:29 [notice] 1#1: worker process 24 exited with code 0
+2025/10/20 09:15:29 [notice] 1#1: worker process 25 exited with code 0
+2025/10/20 09:15:29 [notice] 1#1: worker process 26 exited with code 0
+2025/10/20 09:15:29 [notice] 1#1: worker process 27 exited with code 0
+2025/10/20 09:15:29 [notice] 1#1: signal 29 (SIGIO) received
+2025/10/20 09:15:29 [notice] 1#1: signal 17 (SIGCHLD) received from 20
+2025/10/20 09:15:29 [notice] 1#1: worker process 23 exited with code 0
+2025/10/20 09:15:29 [notice] 1#1: exit
+2025/10/20 09:15:29 [notice] 1#1: using the "epoll" event method
+2025/10/20 09:15:29 [notice] 1#1: nginx/1.29.2
+2025/10/20 09:15:29 [notice] 1#1: built by gcc 14.2.0 (Alpine 14.2.0) 
+2025/10/20 09:15:29 [notice] 1#1: OS: Linux 6.10.14-linuxkit
+2025/10/20 09:15:29 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
+2025/10/20 09:15:29 [notice] 1#1: start worker processes
+2025/10/20 09:15:29 [notice] 1#1: start worker process 20
+2025/10/20 09:15:29 [notice] 1#1: start worker process 21
+2025/10/20 09:15:29 [notice] 1#1: start worker process 22
+2025/10/20 09:15:29 [notice] 1#1: start worker process 23
+2025/10/20 09:15:29 [notice] 1#1: start worker process 24
+2025/10/20 09:15:29 [notice] 1#1: start worker process 25
+2025/10/20 09:15:29 [notice] 1#1: start worker process 26
+2025/10/20 09:15:29 [notice] 1#1: start worker process 27
+2025/10/20 09:27:03 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down
+2025/10/20 09:27:03 [notice] 20#20: gracefully shutting down
+2025/10/20 09:27:03 [notice] 21#21: gracefully shutting down
+2025/10/20 09:27:03 [notice] 20#20: exiting
+2025/10/20 09:27:03 [notice] 23#23: gracefully shutting down
+2025/10/20 09:27:03 [notice] 24#24: gracefully shutting down
+2025/10/20 09:27:03 [notice] 22#22: gracefully shutting down
+2025/10/20 09:27:03 [notice] 25#25: gracefully shutting down
+2025/10/20 09:27:03 [notice] 27#27: gracefully shutting down
+2025/10/20 09:27:03 [notice] 26#26: gracefully shutting down
+2025/10/20 09:27:03 [notice] 21#21: exiting
+2025/10/20 09:27:03 [notice] 22#22: exiting
+2025/10/20 09:27:03 [notice] 21#21: exit
+2025/10/20 09:27:03 [notice] 24#24: exiting
+2025/10/20 09:27:03 [notice] 23#23: exiting
+2025/10/20 09:27:03 [notice] 20#20: exit
+2025/10/20 09:27:03 [notice] 25#25: exiting
+2025/10/20 09:27:03 [notice] 27#27: exiting
+2025/10/20 09:27:03 [notice] 26#26: exiting
+2025/10/20 09:27:03 [notice] 27#27: exit
+2025/10/20 09:27:03 [notice] 22#22: exit
+2025/10/20 09:27:03 [notice] 23#23: exit
+2025/10/20 09:27:03 [notice] 24#24: exit
+2025/10/20 09:27:03 [notice] 26#26: exit
+2025/10/20 09:27:03 [notice] 25#25: exit
+2025/10/20 09:27:03 [notice] 1#1: signal 17 (SIGCHLD) received from 25
+2025/10/20 09:27:03 [notice] 1#1: worker process 22 exited with code 0
+2025/10/20 09:27:03 [notice] 1#1: worker process 25 exited with code 0
+2025/10/20 09:27:03 [notice] 1#1: signal 29 (SIGIO) received
+2025/10/20 09:27:03 [notice] 1#1: signal 17 (SIGCHLD) received from 22
+2025/10/20 09:27:03 [notice] 1#1: signal 17 (SIGCHLD) received from 27
+2025/10/20 09:27:03 [notice] 1#1: worker process 20 exited with code 0
+2025/10/20 09:27:03 [notice] 1#1: worker process 21 exited with code 0
+2025/10/20 09:27:03 [notice] 1#1: worker process 23 exited with code 0
+2025/10/20 09:27:03 [notice] 1#1: worker process 24 exited with code 0
+2025/10/20 09:27:03 [notice] 1#1: worker process 26 exited with code 0
+2025/10/20 09:27:03 [notice] 1#1: worker process 27 exited with code 0
+2025/10/20 09:27:03 [notice] 1#1: exit
+2025/10/20 09:27:03 [notice] 1#1: using the "epoll" event method
+2025/10/20 09:27:03 [notice] 1#1: nginx/1.29.2
+2025/10/20 09:27:03 [notice] 1#1: built by gcc 14.2.0 (Alpine 14.2.0) 
+2025/10/20 09:27:03 [notice] 1#1: OS: Linux 6.10.14-linuxkit
+2025/10/20 09:27:03 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
+2025/10/20 09:27:03 [notice] 1#1: start worker processes
+2025/10/20 09:27:03 [notice] 1#1: start worker process 20
+2025/10/20 09:27:03 [notice] 1#1: start worker process 21
+2025/10/20 09:27:03 [notice] 1#1: start worker process 22
+2025/10/20 09:27:03 [notice] 1#1: start worker process 23
+2025/10/20 09:27:03 [notice] 1#1: start worker process 24
+2025/10/20 09:27:03 [notice] 1#1: start worker process 25
+2025/10/20 09:27:03 [notice] 1#1: start worker process 26
+2025/10/20 09:27:03 [notice] 1#1: start worker process 27
+2025/10/20 09:28:14 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down
+2025/10/20 09:28:14 [notice] 21#21: gracefully shutting down
+2025/10/20 09:28:14 [notice] 23#23: gracefully shutting down
+2025/10/20 09:28:14 [notice] 20#20: gracefully shutting down
+2025/10/20 09:28:14 [notice] 22#22: gracefully shutting down
+2025/10/20 09:28:14 [notice] 24#24: gracefully shutting down
+2025/10/20 09:28:14 [notice] 26#26: gracefully shutting down
+2025/10/20 09:28:14 [notice] 25#25: gracefully shutting down
+2025/10/20 09:28:14 [notice] 27#27: gracefully shutting down
+2025/10/20 09:28:14 [notice] 21#21: exiting
+2025/10/20 09:28:14 [notice] 20#20: exiting
+2025/10/20 09:28:14 [notice] 23#23: exiting
+2025/10/20 09:28:14 [notice] 22#22: exiting
+2025/10/20 09:28:14 [notice] 27#27: exiting
+2025/10/20 09:28:14 [notice] 24#24: exiting
+2025/10/20 09:28:14 [notice] 25#25: exiting
+2025/10/20 09:28:14 [notice] 26#26: exiting
+2025/10/20 09:28:14 [notice] 23#23: exit
+2025/10/20 09:28:14 [notice] 21#21: exit
+2025/10/20 09:28:14 [notice] 20#20: exit
+2025/10/20 09:28:14 [notice] 22#22: exit
+2025/10/20 09:28:14 [notice] 27#27: exit
+2025/10/20 09:28:14 [notice] 24#24: exit
+2025/10/20 09:28:14 [notice] 25#25: exit
+2025/10/20 09:28:14 [notice] 26#26: exit
+2025/10/20 09:28:14 [notice] 1#1: signal 17 (SIGCHLD) received from 25
+2025/10/20 09:28:14 [notice] 1#1: worker process 20 exited with code 0
+2025/10/20 09:28:14 [notice] 1#1: worker process 21 exited with code 0
+2025/10/20 09:28:14 [notice] 1#1: worker process 22 exited with code 0
+2025/10/20 09:28:14 [notice] 1#1: worker process 24 exited with code 0
+2025/10/20 09:28:14 [notice] 1#1: worker process 25 exited with code 0
+2025/10/20 09:28:14 [notice] 1#1: signal 29 (SIGIO) received
+2025/10/20 09:28:14 [notice] 1#1: signal 17 (SIGCHLD) received from 24
+2025/10/20 09:28:14 [notice] 1#1: signal 17 (SIGCHLD) received from 23
+2025/10/20 09:28:14 [notice] 1#1: worker process 23 exited with code 0
+2025/10/20 09:28:14 [notice] 1#1: worker process 26 exited with code 0
+2025/10/20 09:28:14 [notice] 1#1: worker process 27 exited with code 0
+2025/10/20 09:28:14 [notice] 1#1: exit
+2025/10/20 09:28:14 [notice] 1#1: using the "epoll" event method
+2025/10/20 09:28:14 [notice] 1#1: nginx/1.29.2
+2025/10/20 09:28:14 [notice] 1#1: built by gcc 14.2.0 (Alpine 14.2.0) 
+2025/10/20 09:28:14 [notice] 1#1: OS: Linux 6.10.14-linuxkit
+2025/10/20 09:28:14 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
+2025/10/20 09:28:14 [notice] 1#1: start worker processes
+2025/10/20 09:28:14 [notice] 1#1: start worker process 20
+2025/10/20 09:28:14 [notice] 1#1: start worker process 21
+2025/10/20 09:28:14 [notice] 1#1: start worker process 22
+2025/10/20 09:28:14 [notice] 1#1: start worker process 23
+2025/10/20 09:28:14 [notice] 1#1: start worker process 24
+2025/10/20 09:28:14 [notice] 1#1: start worker process 25
+2025/10/20 09:28:14 [notice] 1#1: start worker process 26
+2025/10/20 09:28:14 [notice] 1#1: start worker process 27
+2025/10/20 09:33:54 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down
+2025/10/20 09:33:54 [notice] 21#21: gracefully shutting down
+2025/10/20 09:33:54 [notice] 22#22: gracefully shutting down
+2025/10/20 09:33:54 [notice] 26#26: gracefully shutting down
+2025/10/20 09:33:54 [notice] 20#20: gracefully shutting down
+2025/10/20 09:33:54 [notice] 23#23: gracefully shutting down
+2025/10/20 09:33:54 [notice] 25#25: gracefully shutting down
+2025/10/20 09:33:54 [notice] 24#24: gracefully shutting down
+2025/10/20 09:33:54 [notice] 23#23: exiting
+2025/10/20 09:33:54 [notice] 27#27: gracefully shutting down
+2025/10/20 09:33:54 [notice] 21#21: exiting
+2025/10/20 09:33:54 [notice] 22#22: exiting
+2025/10/20 09:33:54 [notice] 27#27: exiting
+2025/10/20 09:33:54 [notice] 26#26: exiting
+2025/10/20 09:33:54 [notice] 20#20: exiting
+2025/10/20 09:33:54 [notice] 25#25: exiting
+2025/10/20 09:33:54 [notice] 24#24: exiting
+2025/10/20 09:33:54 [notice] 21#21: exit
+2025/10/20 09:33:54 [notice] 22#22: exit
+2025/10/20 09:33:54 [notice] 27#27: exit
+2025/10/20 09:33:54 [notice] 23#23: exit
+2025/10/20 09:33:54 [notice] 26#26: exit
+2025/10/20 09:33:54 [notice] 20#20: exit
+2025/10/20 09:33:54 [notice] 25#25: exit
+2025/10/20 09:33:54 [notice] 24#24: exit
+2025/10/20 09:33:54 [notice] 1#1: signal 17 (SIGCHLD) received from 21
+2025/10/20 09:33:54 [notice] 1#1: worker process 20 exited with code 0
+2025/10/20 09:33:54 [notice] 1#1: worker process 21 exited with code 0
+2025/10/20 09:33:54 [notice] 1#1: worker process 22 exited with code 0
+2025/10/20 09:33:54 [notice] 1#1: worker process 23 exited with code 0
+2025/10/20 09:33:54 [notice] 1#1: worker process 24 exited with code 0
+2025/10/20 09:33:54 [notice] 1#1: worker process 25 exited with code 0
+2025/10/20 09:33:54 [notice] 1#1: worker process 26 exited with code 0
+2025/10/20 09:33:54 [notice] 1#1: worker process 27 exited with code 0
+2025/10/20 09:33:54 [notice] 1#1: exit
+2025/10/20 09:33:54 [notice] 1#1: using the "epoll" event method
+2025/10/20 09:33:54 [notice] 1#1: nginx/1.29.2
+2025/10/20 09:33:54 [notice] 1#1: built by gcc 14.2.0 (Alpine 14.2.0) 
+2025/10/20 09:33:54 [notice] 1#1: OS: Linux 6.10.14-linuxkit
+2025/10/20 09:33:54 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
+2025/10/20 09:33:54 [notice] 1#1: start worker processes
+2025/10/20 09:33:54 [notice] 1#1: start worker process 20
+2025/10/20 09:33:54 [notice] 1#1: start worker process 21
+2025/10/20 09:33:54 [notice] 1#1: start worker process 22
+2025/10/20 09:33:54 [notice] 1#1: start worker process 23
+2025/10/20 09:33:54 [notice] 1#1: start worker process 24
+2025/10/20 09:33:54 [notice] 1#1: start worker process 25
+2025/10/20 09:33:54 [notice] 1#1: start worker process 26
+2025/10/20 09:33:54 [notice] 1#1: start worker process 27
+2025/10/20 09:46:22 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down
+2025/10/20 09:46:22 [notice] 20#20: gracefully shutting down
+2025/10/20 09:46:22 [notice] 21#21: gracefully shutting down
+2025/10/20 09:46:22 [notice] 22#22: gracefully shutting down
+2025/10/20 09:46:22 [notice] 27#27: gracefully shutting down
+2025/10/20 09:46:22 [notice] 24#24: gracefully shutting down
+2025/10/20 09:46:22 [notice] 23#23: gracefully shutting down
+2025/10/20 09:46:22 [notice] 25#25: gracefully shutting down
+2025/10/20 09:46:22 [notice] 26#26: gracefully shutting down
+2025/10/20 09:46:22 [notice] 21#21: exiting
+2025/10/20 09:46:22 [notice] 20#20: exiting
+2025/10/20 09:46:22 [notice] 26#26: exiting
+2025/10/20 09:46:22 [notice] 22#22: exiting
+2025/10/20 09:46:22 [notice] 27#27: exiting
+2025/10/20 09:46:22 [notice] 23#23: exiting
+2025/10/20 09:46:22 [notice] 24#24: exiting
+2025/10/20 09:46:22 [notice] 25#25: exiting
+2025/10/20 09:46:22 [notice] 20#20: exit
+2025/10/20 09:46:22 [notice] 25#25: exit
+2025/10/20 09:46:22 [notice] 21#21: exit
+2025/10/20 09:46:22 [notice] 26#26: exit
+2025/10/20 09:46:22 [notice] 22#22: exit
+2025/10/20 09:46:22 [notice] 27#27: exit
+2025/10/20 09:46:22 [notice] 23#23: exit
+2025/10/20 09:46:22 [notice] 24#24: exit
+2025/10/20 09:46:22 [notice] 1#1: signal 17 (SIGCHLD) received from 21
+2025/10/20 09:46:22 [notice] 1#1: worker process 20 exited with code 0
+2025/10/20 09:46:22 [notice] 1#1: worker process 21 exited with code 0
+2025/10/20 09:46:22 [notice] 1#1: worker process 22 exited with code 0
+2025/10/20 09:46:22 [notice] 1#1: worker process 23 exited with code 0
+2025/10/20 09:46:22 [notice] 1#1: worker process 24 exited with code 0
+2025/10/20 09:46:22 [notice] 1#1: worker process 25 exited with code 0
+2025/10/20 09:46:22 [notice] 1#1: worker process 26 exited with code 0
+2025/10/20 09:46:22 [notice] 1#1: worker process 27 exited with code 0
+2025/10/20 09:46:22 [notice] 1#1: exit
+2025/10/20 09:46:22 [notice] 1#1: using the "epoll" event method
+2025/10/20 09:46:22 [notice] 1#1: nginx/1.29.2
+2025/10/20 09:46:22 [notice] 1#1: built by gcc 14.2.0 (Alpine 14.2.0) 
+2025/10/20 09:46:22 [notice] 1#1: OS: Linux 6.10.14-linuxkit
+2025/10/20 09:46:22 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
+2025/10/20 09:46:22 [notice] 1#1: start worker processes
+2025/10/20 09:46:22 [notice] 1#1: start worker process 20
+2025/10/20 09:46:22 [notice] 1#1: start worker process 21
+2025/10/20 09:46:22 [notice] 1#1: start worker process 22
+2025/10/20 09:46:22 [notice] 1#1: start worker process 23
+2025/10/20 09:46:22 [notice] 1#1: start worker process 24
+2025/10/20 09:46:22 [notice] 1#1: start worker process 25
+2025/10/20 09:46:22 [notice] 1#1: start worker process 26
+2025/10/20 09:46:22 [notice] 1#1: start worker process 27
+2025/10/20 09:50:30 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down
+2025/10/20 09:50:30 [notice] 21#21: gracefully shutting down
+2025/10/20 09:50:30 [notice] 20#20: gracefully shutting down
+2025/10/20 09:50:30 [notice] 26#26: gracefully shutting down
+2025/10/20 09:50:30 [notice] 27#27: gracefully shutting down
+2025/10/20 09:50:30 [notice] 22#22: gracefully shutting down
+2025/10/20 09:50:30 [notice] 24#24: gracefully shutting down
+2025/10/20 09:50:30 [notice] 25#25: gracefully shutting down
+2025/10/20 09:50:30 [notice] 24#24: exiting
+2025/10/20 09:50:30 [notice] 23#23: gracefully shutting down
+2025/10/20 09:50:30 [notice] 21#21: exiting
+2025/10/20 09:50:30 [notice] 20#20: exiting
+2025/10/20 09:50:30 [notice] 26#26: exiting
+2025/10/20 09:50:30 [notice] 27#27: exiting
+2025/10/20 09:50:30 [notice] 22#22: exiting
+2025/10/20 09:50:30 [notice] 25#25: exiting
+2025/10/20 09:50:30 [notice] 24#24: exit
+2025/10/20 09:50:30 [notice] 25#25: exit
+2025/10/20 09:50:30 [notice] 21#21: exit
+2025/10/20 09:50:30 [notice] 23#23: exiting
+2025/10/20 09:50:30 [notice] 20#20: exit
+2025/10/20 09:50:30 [notice] 26#26: exit
+2025/10/20 09:50:30 [notice] 27#27: exit
+2025/10/20 09:50:30 [notice] 22#22: exit
+2025/10/20 09:50:30 [notice] 23#23: exit
+2025/10/20 09:50:30 [notice] 1#1: signal 17 (SIGCHLD) received from 21
+2025/10/20 09:50:30 [notice] 1#1: worker process 20 exited with code 0
+2025/10/20 09:50:30 [notice] 1#1: worker process 21 exited with code 0
+2025/10/20 09:50:30 [notice] 1#1: worker process 24 exited with code 0
+2025/10/20 09:50:30 [notice] 1#1: worker process 26 exited with code 0
+2025/10/20 09:50:30 [notice] 1#1: worker process 27 exited with code 0
+2025/10/20 09:50:30 [notice] 1#1: signal 29 (SIGIO) received
+2025/10/20 09:50:30 [notice] 1#1: signal 17 (SIGCHLD) received from 20
+2025/10/20 09:50:30 [notice] 1#1: signal 17 (SIGCHLD) received from 23
+2025/10/20 09:50:30 [notice] 1#1: worker process 22 exited with code 0
+2025/10/20 09:50:30 [notice] 1#1: worker process 23 exited with code 0
+2025/10/20 09:50:30 [notice] 1#1: worker process 25 exited with code 0
+2025/10/20 09:50:30 [notice] 1#1: exit
+2025/10/20 09:50:31 [notice] 1#1: using the "epoll" event method
+2025/10/20 09:50:31 [notice] 1#1: nginx/1.29.2
+2025/10/20 09:50:31 [notice] 1#1: built by gcc 14.2.0 (Alpine 14.2.0) 
+2025/10/20 09:50:31 [notice] 1#1: OS: Linux 6.10.14-linuxkit
+2025/10/20 09:50:31 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
+2025/10/20 09:50:31 [notice] 1#1: start worker processes
+2025/10/20 09:50:31 [notice] 1#1: start worker process 20
+2025/10/20 09:50:31 [notice] 1#1: start worker process 21
+2025/10/20 09:50:31 [notice] 1#1: start worker process 22
+2025/10/20 09:50:31 [notice] 1#1: start worker process 23
+2025/10/20 09:50:31 [notice] 1#1: start worker process 24
+2025/10/20 09:50:31 [notice] 1#1: start worker process 25
+2025/10/20 09:50:31 [notice] 1#1: start worker process 26
+2025/10/20 09:50:31 [notice] 1#1: start worker process 27

+ 1 - 0
php-fpm/conf/docker-php-ext-mysqli.ini

@@ -0,0 +1 @@
+extension=mysqli

+ 1 - 0
php-fpm/conf/docker-php-ext-pdo_mysql.ini

@@ -0,0 +1 @@
+extension=pdo_mysql

+ 13 - 0
php-fpm/conf/php.ini

@@ -0,0 +1,13 @@
+; ./php/conf/php.ini
+[PHP]
+; 设置错误日志路径(容器内的路径,确保 PHP 有权限写入)
+error_log = /var/log/php/error.log
+; 显示所有错误(开发环境用,生产环境关闭)
+display_errors = On
+display_startup_errors = On
+; 报告所有错误,但排除 deprecated 警告(解决 PHP 8.2 兼容性问题)
+error_reporting = E_ALL & ~E_DEPRECATED
+; 其他必要配置(根据项目需求添加)
+memory_limit = 128M
+upload_max_filesize = 2M
+post_max_size = 8M

+ 16 - 0
php-fpm/docker/Dockerfile

@@ -0,0 +1,16 @@
+FROM php:7.4-fpm-alpine
+
+# 安装必要的依赖和 MySQL 扩展
+RUN apk add --no-cache \
+    autoconf \
+    g++ \
+    make \
+    && docker-php-ext-install pdo_mysql mysqli \
+    && apk del autoconf g++ make
+
+# 清理缓存
+RUN rm -rf /tmp/* /var/cache/apk/*
+
+EXPOSE 9000
+
+CMD ["php-fpm"]

BIN
redis/data/appendonlydir/appendonly.aof.1.base.rdb


+ 0 - 0
redis/data/appendonlydir/appendonly.aof.1.incr.aof


+ 2 - 0
redis/data/appendonlydir/appendonly.aof.manifest

@@ -0,0 +1,2 @@
+file appendonly.aof.1.base.rdb seq 1 type b
+file appendonly.aof.1.incr.aof seq 1 type i

BIN
redis/data/dump.rdb


+ 42 - 0
redis/redis.conf

@@ -0,0 +1,42 @@
+# Redis 配置文件
+
+# 绑定地址(0.0.0.0 允许所有地址访问)
+bind 0.0.0.0
+
+# 保护模式关闭(因为设置了密码)
+protected-mode no
+
+# 端口
+port 6379
+
+# 密码认证(在 docker-compose.yml 中通过 --requirepass 设置)
+# requirepass zskk8888
+
+# 持久化配置 - RDB
+save 900 1
+save 300 10
+save 60 10000
+
+# RDB 文件名
+dbfilename dump.rdb
+
+# 工作目录
+dir /data
+
+# 持久化配置 - AOF
+appendonly yes
+appendfilename "appendonly.aof"
+appendfsync everysec
+
+# 日志级别
+loglevel notice
+
+# 最大内存策略
+maxmemory 256mb
+maxmemory-policy allkeys-lru
+
+# 超时时间(秒,0 表示不超时)
+timeout 300
+
+# 数据库数量
+databases 16

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor