在 Nginx 中配置多个 server 块可以用于处理多个域名或子域名的请求。每个 server 块可以定义不同的监听端口、域名、根目录等。以下是一个简单的示例:

# 第一个 server 块,处理 example.com 的请求
server {
    listen 80;
    server_name example.com;

    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

# 第二个 server 块,处理 sub.example.com 的请求
server {
    listen 80;
    server_name sub.example.com;

    root /var/www/sub.example.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

# 第三个 server 块,处理另一个域名 another.com 的请求
server {
    listen 80;
    server_name another.com;

    root /var/www/another.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

解释:

  1. listen: 指定 Nginx 监听的端口,通常是 80(HTTP)或 443(HTTPS)。

  2. server_name: 指定该 server 块处理的域名或子域名。

  3. root: 指定该域名的根目录,即网站文件的存放路径。

  4. index: 指定默认的索引文件,通常是 index.html

  5. location: 定义 URL 路径的处理规则。

注意事项:

  • 如果有多个 server 块监听同一个端口,Nginx 会根据 server_name 来匹配请求的域名。

  • 如果没有匹配到任何 server_name,Nginx 会使用默认的 server 块(通常是第一个 server 块)。

保存并重启 Nginx:

在修改完配置文件后,保存并重启 Nginx 以使配置生效:

sudo nginx -t  # 测试配置文件是否正确
sudo systemctl restart nginx  # 重启 Nginx

这样,Nginx 就可以根据不同的域名或子域名来处理请求了。

本篇文章内容来源于:nginx 配置多个server