![将服务器映射到 nginx 中的域指令](https://linux22.com/image/681597/%E5%B0%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%98%A0%E5%B0%84%E5%88%B0%20nginx%20%E4%B8%AD%E7%9A%84%E5%9F%9F%E6%8C%87%E4%BB%A4.png)
我想知道是否可以将域指令映射到服务器。
在我们的例子中,我们有一个由 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 {
...
}
}