首先我想说,从技术上来说,这是可行的。
我正在尝试使用单页反应应用程序(SPA)代理具有相同 cname.domainname.com 的 api。
该 api 只是一个基本的节点 REST api,其根路径为/api
而不是/
。我使用以下服务器设置了我的 /etc/nginx/sites-available/default 文件。(我的网站域名已使用泛型切换)
(我从指南中复制粘贴了服务器并进行了更改以满足我的需求)
两个问题:
我需要在 SPA 上声明根吗?(我的根目前是错误的,但一切正常,因此对于 SPA 来说这似乎并不重要)
这是我想要完成的事情的“正确”方法吗?
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 提供静态资产是有益的,因为它在向客户端提供文件方面非常高效。
后端应该专注于提供动态内容。