如何在单独的根文件夹中创建 2 个 NGINX 配置文件,其中包含子域 + 单独的根目录中的第二个域

如何在单独的根文件夹中创建 2 个 NGINX 配置文件,其中包含子域 + 单独的根目录中的第二个域

我有两个域example.comexample.net

  • 两者都应具有测试子域,例如test.example.com指向不同的根,如 root/var/www/example.com/html和 root /var/www/test-example.com/html
  • &将被永久重定向至www.example.com& 。www.example.netexample.comexample.net

在这种情况下,我的 NGINX 配置文件应该是什么样子?

最好有 2 个文件/etc/nginx/sites-available/example.com并且/etc/nginx/sites-available/example.net(第二个指向根目录/var/www/example.net/html

答案1

这是我修改后的答案原始答案对于你的第一个问题。

以下配置示例针对的是,如果您将所有的替换为/etc/nginx/sites-enabled/example.com,则另一个可能是。/etc/nginx/sites-enabled/example.netexample.comexample.net

server {
    listen 80;
    server_name example.com www.example.com test.example.com; 

    # HTTP to HTTPS redirections for all the subdomains
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name www.example.com;
    # ssl_* directives here

    # www to non-www for SEO canonical reasons
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com;
    # ssl_* directives here

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

server {
    listen 443 ssl;
    server_name test.example.com;
    # ssl_* directives here

    root /var/www/example.com/test;
}
  1. 第一个server{}块将普通 HTTP 连接升级为 HTTPS。
  2. 第二个server{}块将 www 重定向到非 www。
  3. 第三块server{}提供来自的文件/var/www/example.com/html
  4. 用不同的根来分离server{}块。test.example.com

相关内容