是否可以使用 nginx 并重定向到基于子域的正确路径?

Is it possible to use nginx and redirect to correct path based on sub domains?

我在尝试配置服务器时发现了一个问题。在服务器端我使用的是 Nginx。

问题是我有 1 个域和 2 个子域,例如:

  1. www.test.com
  2. www.api.test.com
  3. www.panel.test.com

而这3个url被记录A重定向到IP服务器

我想做的就是识别 url 用户来自什么 return:

  1. 如果用户来自 www.test.com - 显示静态 html
  2. 如果用户来自 api - 重定向到将提供数据的 nodejs 服务器
  3. 如果用户来自面板 - 重定向到将提供服务的 nodejs 服务器 html

我不知道如何识别url用户来自什么。 有可能这样做吗?如果是 - 如果您有一些教程 - 我将不胜感激!不幸的是,我检查了很多教程,但我无法管理它。

作为一个信息,我真的不擅长那部分(服务器和配置)-但想学习它:)

谢谢!

server_name 指令将规则分配给特定 domain/host 名称的 server 块:

server {
  server_name test.com www.test.com;

  listen      80;  # IPv4
  listen [::]:80;  # IPv6
  
  root /var/www/static-files;
}

server {
  server_name api.test.com;
  ...
}

server {
  server_name panel.test.com;
  ...
}

或者,$host 变量可以在为多个主机提供服务的服务器块中使用:

server {
  server_name test.com www.test.com
              api.test.com
              panel.test.com;

  return 200 "This hostname is $host";
  ...
}