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)