Nginx 路由根(/)

Nginx 路由根(/)

我正在尝试在 Nginx 路由器后面运行一个应用程序。该应用程序在端口 3000 上运行,并为多个路由提供服务,例如/api/login/logout。我还有一些要显示的静态内容/以及/assets文件夹。现在我的 nginx 配置如下所示:

server {
  listen 80;
  root /home/app/static;
  index index.html;
  location = / {
    try_files $uri $uri/ index.html;
  }
  location ^~ (api|login|logout) {
    proxy_pass http://localhost:3000;
    proxy_redirect off;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
  }
}

我想(api|login|logout)用某种万能方法代替。当我尝试简单地使用location / { ... }时,nginx 出于某种原因代理到我的应用程序而不是显示静态内容。这是怎么回事?

答案1

你可以用这些块来实现location

location / {
    try_files $uri $uri/ @proxy;
}
location @proxy {
    proxy_pass http://localhost:3000;
    proxy_redirect off;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
}

相关内容