nginx配置文件
https://gitee.com/Cairo-SR8/nginx-configuration.git
一、安装nginx
1.1 拉去ARM镜像
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_nginx:latest
1.2 拉去x86镜像
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/nginx:latest
Nginx 部署脚本 (deploy_chongqing_nginx.sh)
#!/bin/bash# 配置区(根据实际修改)
CONTAINER_NAME="chongqing-xxxx-nginx-web"
HTTP_PORT=32082
HTTPS_PORT=32084 # 如需启用HTTPS
IMAGE="registry.cn-hangzhou.aliyuncs.com/qiluo-images/nginx:latest"
VOLUME_ROOT="/data/chongqing-xxxx-nginx-web"# 自动生成目录结构
NGINX_DIRS=("$VOLUME_ROOT/nginx/conf" # 配置文件"$VOLUME_ROOT/nginx/dist" # 前端代码"$VOLUME_ROOT/nginx/logs" # 日志文件
)# 预检函数
preflight_check() {# 检查Docker是否运行if ! systemctl is-active docker &>/dev/null; thenecho "错误:Docker服务未运行!"exit 1fi# 创建目录并设置权限for dir in "${NGINX_DIRS[@]}"; domkdir -p "$dir" || { echo "目录创建失败: $dir"; exit 1; }chmod -R 755 "$dir"echo "目录已验证: $dir"done# 检查关键配置文件if [ ! -f "$VOLUME_ROOT/nginx/conf/nginx.conf" ]; thenecho "初始化默认nginx.conf..."docker run --rm "$IMAGE" cat /etc/nginx/nginx.conf > "$VOLUME_ROOT/nginx/conf/nginx.conf"fi
}# 清理旧容器
cleanup_old() {if docker ps -a --filter "name=$CONTAINER_NAME" | grep -q "$CONTAINER_NAME"; thenecho "移除旧容器..."docker rm -f "$CONTAINER_NAME" || { echo "容器移除失败"; exit 1; }fi
}# 启动服务
deploy_nginx() {echo "正在部署Nginx服务..."docker run -d -it \--name "$CONTAINER_NAME" \--privileged=true \--restart=always \-p "$HTTP_PORT:32082" \-p "$HTTPS_PORT:32084" \-v "/etc/localtime:/etc/localtime:ro" \-v "$VOLUME_ROOT/nginx/conf:/etc/nginx" \-v "$VOLUME_ROOT/nginx/dist:/data/nginx/html" \-v "$VOLUME_ROOT/nginx/logs:/var/log/nginx" \"$IMAGE"# 验证状态sleep 3if ! docker ps --filter "name=$CONTAINER_NAME" --format "{{.Status}}" | grep -q "Up"; thenecho "容器启动失败!错误日志:"docker logs "$CONTAINER_NAME" | tail -20exit 1fi
}# 健康检查
health_check() {echo "执行健康检查..."local retries=5while ((retries-- > 0)); doif curl -sI "http://localhost:$HTTP_PORT" | grep -q "HTTP/.*200"; thenecho "服务已就绪"return 0fisleep 5doneecho "健康检查失败!"return 1
}# 主流程
preflight_check
cleanup_old
deploy_nginx
health_check || exit 1# 输出部署信息
echo "--------------------------------------------------"
echo "重庆监管平台Nginx部署成功!"
echo "容器名称: $CONTAINER_NAME"
echo "HTTP访问: http://<服务器IP>:$HTTP_PORT"
echo "HTTPS端口: $HTTPS_PORT (需配置SSL证书)"
echo "配置文件: $VOLUME_ROOT/nginx/conf"
echo "前端代码: $VOLUME_ROOT/nginx/dist"
echo "日志目录: $VOLUME_ROOT/nginx/logs"
echo "管理命令:"
echo " docker logs -f $CONTAINER_NAME # 查看实时日志"
echo " docker exec -it $CONTAINER_NAME nginx -t # 测试配置"
- 部署步骤
# 赋予执行权限
chmod +x deploy_chongqing_nginx.sh# 执行部署
./deploy_chongqing_nginx.sh
2. 关键路径说明
配置目录 Nginx所有配置文件 /data/chongqing-xxxx-nginx-web/nginx/conf/
前端代码目录 存放HTML/JS/CSS等静态文件 /data/chongqing-xxxx-nginx-web/nginx/dist/
日志目录 访问日志和错误日志 /data/chongqing-xxxx-nginx-web/nginx/logs/
3. 端口说明
端口 协议 用途 外部访问示例
32082 HTTP 默认Web访问端口 http://your-server-ip:32082
32084 HTTPS 预留SSL端口(需配置) https://your-server-ip:32084
- 日常维护命令
# 重载配置(不中断服务)
docker exec $CONTAINER_NAME nginx -s reload# 查看实时访问日志
tail -f $VOLUME_ROOT/nginx/logs/access.log# 备份配置
cp -r $VOLUME_ROOT/nginx/conf /backup/nginx_conf_$(date +%Y%m%d)