在Nginx中批量添加二级子域名可以通过几种方式实现,下面我将介绍最常用的几种方法:
首先配置DNS:
*.example.com
指向你的服务器IPNginx配置:
server {
listen 80;
server_name ~^(?<subdomain>.+)\.example\.com$;
root /var/www/$subdomain;
index index.html;
access_log /var/log/nginx/$subdomain.access.log;
error_log /var/log/nginx/$subdomain.error.log;
# 其他配置...
}
mkdir /etc/nginx/sites-available/subdomains
#!/bin/bash
for i in {1..50}; do
cat > /etc/nginx/sites-available/subdomains/sub${i}.conf <<EOF
server {
listen 80;
server_name sub${i}.example.com;
root /var/www/sub${i};
index index.html;
# 其他配置...
}
EOF
done
include /etc/nginx/sites-available/subdomains/*.conf;
map $host $root_path {
default /var/www/default;
"~^(?<subdomain>[^.]+)\.example\.com$" /var/www/$subdomain;
}
server {
listen 80;
server_name ~^(?<subdomain>[^.]+)\.example\.com$;
root $root_path;
index index.html;
# 其他配置...
}
#!/bin/bash
# 批量创建50个子域名配置
for i in {1..50}; do
subdomain="sub${i}"
# 创建网站目录
mkdir -p "/var/www/${subdomain}"
echo "Welcome to ${subdomain}.example.com" > "/var/www/${subdomain}/index.html"
# 创建Nginx配置
cat > "/etc/nginx/sites-available/${subdomain}.conf" <<EOF
server {
listen 80;
server_name ${subdomain}.example.com;
root /var/www/${subdomain};
index index.html;
location / {
try_files \$uri \$uri/ =404;
}
}
EOF
# 启用配置
ln -s "/etc/nginx/sites-available/${subdomain}.conf" "/etc/nginx/sites-enabled/"
done
# 测试并重载Nginx
nginx -t && systemctl reload nginx
以上方法可以根据你的具体需求选择使用,通配符方法最简单但灵活性较低,批量生成配置文件方法更灵活但管理稍复杂。