Nginx использует маршрут API вместо внешнего интерфейса - PullRequest
0 голосов
/ 22 марта 2020

Я использую Nginx для выбора между двумя docker контейнерами. Первый из них работает Vue. js, а другой - Node.js API.

Когда я пытаюсь получить доступ к сайту, он работает так, как должен. Но когда я пытаюсь получить доступ к внутренней ссылке, например: mysite.app/products/1, возвращается веб-сайт Node.js get error с сообщением Cannot GET /product/1.

Файл nginx .conf:

...

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name mysite.app www.mysite.app;

  location / {
    try_files $uri @front;
  }

  location @front {
    proxy_pass http://front:8888;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "no-referrer-when-downgrade" always;
    add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always;
  }

  location /api/ {
    proxy_pass http://api:3000/;
  }

  root /var/www/html;
  index index.html index.htm index.nginx-debian.html;
}

Я попытался изменить строку location /api/ на location ^~ /api, но у меня та же ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...