Ubuntu下快速部署多个静态网站(含HTTPS配置)
原文地址:https://itxiaozhang.com/ubuntu-multiple-static-sites-deployment-guide/ 如果您需要远程电脑维修或者编程开发,请加我微信咨询。 环境 一台运行 Ubuntu 的服务器(本教程使用 Ubuntu 20.04) 已经购买的域名(支持配置多个域名) 一句话 教程分为两个主要步骤:第一步执行setup_static_sites.sh脚本,实现nginx安装和多站点的基础HTTP配置;第二步执行certbot相关命令,完成SSL证书申请和HTTPS的配置, 1. 准备部署脚本 创建文件 setup_static_sites.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 #!/bin/bash # 配置区域 ==================== DOMAINS=( "zhang9.com" "itxiaozhang.com" ) WEB_ROOT="/var/www/html" LOG_FILE="deployment_$(date +%Y%m%d_%H%M%S).log" # 工具函数 ==================== log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE" } error() { log "错误: $1" exit 1 } # 配置单个域名 configure_domain() { local DOMAIN=$1 log "配置域名: $DOMAIN" local SITE_ROOT="$WEB_ROOT/$DOMAIN" # 检查并创建网站目录 [ ! -d "$SITE_ROOT" ] && mkdir -p "$SITE_ROOT" chown -R www-data:www-data "$SITE_ROOT" chmod -R 755 "$SITE_ROOT" # 配置Nginx(直接覆盖已存在的配置) cat > "/etc/nginx/sites-available/$DOMAIN" << EOF server { listen 80; listen [::]:80; server_name $DOMAIN www.$DOMAIN; root $SITE_ROOT; index index.html; location / { try_files \$uri \$uri/ =404; } access_log /var/log/nginx/$DOMAIN.access.log; error_log /var/log/nginx/$DOMAIN.error.log; } EOF # 启用配置 ln -sf "/etc/nginx/sites-available/$DOMAIN" "/etc/nginx/sites-enabled/" } # 主程序 main() { [ "$(id -u)" != "0" ] && error "需要root权限" # 安装必要软件 apt update apt install -y nginx python3-certbot-nginx # 删除默认配置 rm -f "/etc/nginx/sites-enabled/default" # 配置每个域名 for domain in "${DOMAINS[@]}"; do configure_domain "$domain" done # 检查并重启Nginx nginx -t && systemctl restart nginx # 输出说明 log "配置完成!后续步骤:" for domain in "${DOMAINS[@]}"; do log "1. 上传网站文件到: $WEB_ROOT/$domain/" done } main 2. 配置脚本权限并执行 1 2 chmod +x setup_static_sites.sh sudo ./setup_static_sites.sh 3. 配置域名解析 在域名管理面板中添加以下记录: ...