@hckn

Как исправить конфликт роутов?

upstream api {
  server 127.0.0.1:7777;
}

server {
  listen 80;
  listen [::]:80;
  server_name example.com;

  root /home/iam/project/dist;

  location / {
    try_files $uri $uri/ /index.html;
  }

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

  location /static/ {
    alias /home/iam/cdn/uploads/;
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }
}


Проблема в том, что тут root /home/iam/project/dist тоже есть папка static!

Как это исправить? Оставив роут /static/
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 2
@dodo512
upstream api {
  server 127.0.0.1:7777;
}

server {
  listen 80;
  listen [::]:80;
  server_name example.com;

  root /home/iam/project/dist;

  location / {
    try_files $uri $uri/ /index.html;
  }

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

  location /static/ {
    try_files $uri @cdn_uploads;
  }

  location @cdn_uploads {
    root /home/iam/cdn/uploads;
    rewrite ^/static(/.*)$  $1 break;
  }
}
Ответ написан
Комментировать
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Уточните, в чём проблема? Хотите, чтобы разные локейшены смотрели в разные каталоги - установите им разные root`ы.

З.Ы. - вы ведь знаете, зачем ставите завершающие слэши в директивах, правда?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы