在Nginx中批量添加二级子域名可以通过编写一个脚本来自动化这个过程,以下是一个使用Bash脚本的示例,该脚本可以读取一个包含子域名列表的文件,并为每个子域名生成相应的Nginx配置。
假设你有一个文件subdomains.txt
,其中列出了所有需要添加的二级子域名:
sub1.example.com sub2.example.com sub3.example.com
你可以创建一个Bash脚本add_subdomains.sh
来处理这些子域名:
#!/bin/bash 定义你的主域名和Nginx配置文件路径 MAIN_DOMAIN="example.com" NGINX_CONF="/etc/nginx/sitesavailable/default" 检查输入文件是否存在 if [ ! f "subdomains.txt" ]; then echo "subdomains.txt 文件不存在!" exit 1 fi 备份现有的Nginx配置文件 cp $NGINX_CONF ${NGINX_CONF}.bak 读取子域名文件并生成配置 while IFS= read r subdomain; do # 跳过空行 if [ z "$subdomain" ]; then continue fi # 创建新的server块 cat <<EOL >> $NGINX_CONF server { listen 80; server_name $subdomain; location / { proxy_pass http://localhost:8080; # 替换为实际的后端服务地址 proxy_set_header Host \$host; proxy_set_header XRealIP \$remote_addr; proxy_set_header XForwardedFor \$proxy_add_x_forwarded_for; proxy_set_header XForwardedProto \$scheme; } } EOL done < subdomains.txt 测试Nginx配置是否正确 nginx t if [ $? ne 0 ]; then echo "Nginx配置有误,请检查!" mv ${NGINX_CONF}.bak $NGINX_CONF exit 1 fi 重新加载Nginx配置 systemctl reload nginx echo "子域名已成功添加并重新加载Nginx配置。"
使用步骤:
1、准备子域名列表:将你的子域名列表保存到subdomains.txt
文件中。
2、修改脚本中的变量:根据你的实际情况修改MAIN_DOMAIN
和NGINX_CONF
的值。
3、运行脚本:确保脚本具有执行权限,然后运行脚本。
chmod +x add_subdomains.sh ./add_subdomains.sh
注意事项:
确保你有适当的权限来编辑Nginx配置文件和重新加载Nginx服务。
在生产环境中操作前,建议先在测试环境中验证脚本的正确性。
根据实际需求调整Nginx配置中的proxy_pass
和其他参数。