NGINX 代理传递到以 /api 开头的路由的单独端口

NGINX 代理传递到以 /api 开头的路由的单独端口

首先我想说,从技术上来说,这是可行的。

我正在尝试使用单页反应应用程序(SPA)代理具有相同 cname.domainname.com 的 api。

该 api 只是一个基本的节点 REST api,其根路径为/api而不是/。我使用以下服务器设置了我的 /etc/nginx/sites-available/default 文件。(我的网站域名已使用泛型切换)

(我从指南中复制粘贴了服务器并进行了更改以满足我的需求)

两个问题:

  1. 我需要在 SPA 上声明根吗?(我的根目前是错误的,但一切正常,因此对于 SPA 来说这似乎并不重要)

  2. 这是我想要完成的事情的“正确”方法吗?

server {
   root /opt/htdocs/usefulread;
   index index.html index.htm;
   server_name cname.domainname.com;
   location / {
        proxy_pass http://localhost:5030/; #whatever port your app runs on
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
   }
   location /api/ {
        proxy_pass http://localhost:5031; #whatever port your app runs on
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
   }
   # SSL stuff removed for simplicity
}

答案1

如果您不使用 nginx 提供任何静态文件,那么指令的内容root就无关紧要。

但是,使用 nginx 提供静态资产是有益的,因为它在向客户端提供文件方面非常高效。

后端应该专注于提供动态内容。

相关内容