将服务器映射到 nginx 中的域指令

将服务器映射到 nginx 中的域指令

我想知道是否可以将域指令映射到服务器。

在我们的例子中,我们有一个由 Rails 实例提供的 API,然后我们有一个由 Node 服务器提供的前端。理想情况下,我希望前端http://domain.com/* 和 api 到http://domain.com/api*,但这可能吗?

我尝试了以下内容(只是片段)。

  # Configuration for API.
  server {
    server_name www.domain.com/api;

    location /api {
      try_files $uri @proxy;
    }

    ....
  }

  # Configuration for the server
  server {
    server_name www.domain.com;

    location / {
      try_files $uri @proxy;
    }

    ......
  }

但是这似乎不起作用,是否有可能得到想要的结果?或者我需要其中一个在子域上运行吗?

答案1

这对于server_name指令来说是无效的语法。您在同一块中有两个应用程序server。显然存在冲突的可能性,您需要解决这些冲突。但要扩展您的代码片段,您需要定义两个命名位置,每个应用程序一个:

server {
    server_name www.domain.com;

    location / {
        try_files $uri @proxy;
    }
    location @proxy {
        ...
    }
    location /api {
        try_files $uri @api;
    }
    location @api {
        ...
    }
} 

相关内容