我有一个域名 (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)。