Nginx

Nginx 指向不同的子域

  • November 26, 2021

我有一個域(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 進行的更改,創建另一個伺服器塊並在伺服器名稱下更改子域?想法?

不難,但有幾個步驟

  • 創建您的 Route53 託管區域
  • 註冊您的域,輸入 R53 名稱伺服器
  • 為主域創建一條記錄
  • 為每個子域創建 CNAME 記錄,指向主域
  • Nginx 被配置為響應每個域。它們是子域與 Nginx 無關。

我知道在 AWS 中我需要為域創建記錄

是的,在任何 DNS 中您都必須這樣做。

我相信這將是一個帶有子域名稱的 NS 記錄

這將是一個“A”記錄。這會將您的名稱(域)指向您的主機(IP)。“NS”代表“名稱伺服器”。

(例如 sbx.example.com)

確切地。像這樣:

sbx.example.com. 1800  IN  A    127.0.0.172

然後只需將子域的請求重定向到您需要的文件夾(或 URI)。

引用自:https://serverfault.com/questions/1082668