手动阀

Good Luck To You!

Nginx批量添加二级子域名完美方案

在Nginx中批量添加二级子域名可以通过编写一个脚本来自动化这个过程,以下是一个使用Bash脚本的示例,该脚本可以读取一个包含子域名列表的文件,并为每个子域名生成相应的Nginx配置。

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_DOMAINNGINX_CONF 的值。

3、运行脚本:确保脚本具有执行权限,然后运行脚本。

chmod +x add_subdomains.sh
./add_subdomains.sh

注意事项:

确保你有适当的权限来编辑Nginx配置文件和重新加载Nginx服务。

在生产环境中操作前,建议先在测试环境中验证脚本的正确性。

根据实际需求调整Nginx配置中的proxy_pass 和其他参数。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.