Я пытаюсь обслуживать приложение за маршрутизатором Nginx. Приложение работает на порту 3000 и обслуживает несколько маршрутов, таких как /api , /login и /logout . У меня также есть статический контент, который я хочу показать для / route, а также для папки /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 ответ1

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;
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .