Nginx 指向不同的子域名

Nginx 指向不同的子域名

我有一个域名 (example.com),我正在尝试使用子域名来显示应用程序的不同部分。目前全部托管在 AWS 中。

这就是我想要达到的设置。

sbx.example.com trn.example.com office.example.com

我现在的 nginx 配置如下:

    server {
        listen 80;
        root /var/www/html/apt-front/dist;
    
        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;
    
        server_name example.com www.example.com;
    
             location / {
                try_files $uri $uri/ /index.php$is_args$args;
             }
    
        location /api{
          alias "/var/www/html/api/public";
          try_files $uri $uri/ @api;
              location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
                    fastcgi_param SCRIPT_FILENAME /var/www/html/mint-api/public/index.php;
        }
         }
    
           location @api {
                rewrite /api/(.*)$ /api/index.php?/$1 last;
           }
    
    
        include /etc/nginx/sites-available/*.conf;

}

我知道在 AWS 中我需要为域创建一条记录,我相信这将是一条带有子域名的 NS 记录(例如 sbx.example.com)。我当时想做的是创建另一个存储库(克隆),其中包含 SBX 所需的更改,创建另一个服务器块,然后在服务器名称下更改子域名?有什么想法吗?

答案1

不难,但有几个步骤

  • 创建您的 Route53 托管区域
  • 注册您的域名,输入 R53 名称服务器
  • 为主域创建 A 记录
  • 为每个子域创建 CNAME 记录,指向主域
  • Nginx 配置为响应每个域。它们是子域与 Nginx 无关。

答案2

我知道在 AWS 中我需要为域创建一条记录

是的,在任何 DNS 中您都必须这样做。

我相信那将是一条带有子域名的 NS 记录

这将是一条“A”记录。这会将您的名称(域)指向您的主机(IP)。“NS”代表“名称服务器”。

(例如 sbx.example.com)

没错。就像这样:

sbx.example.com. 1800  IN  A    127.0.0.172

然后只需将子域的请求重定向到您需要的文件夹(或 URI)。

相关内容