Назад | Перейти на главную страницу

Приложение обратного прокси и его статические файлы с Nginx

Я пытаюсь сделать что-то, что кажется мне очень простым, но я должен быть глуп или пропустить что-то очень очевидное, потому что я не могу этого понять.

Я хочу получить доступ к нескольким веб-приложениям, работающим на моем сервере, с уникальным префиксом для каждого из них:

http://mywebserver/app1 -> localhost:9001
http://mywebserver/app2 -> localhost:9002
...

Насколько я понял, мне нужно настроить Nginx как обратный прокси, поэтому я сделал это:

server {
listen 80;
server_name mywebserver;

  location /app1{
    proxy_set_header    Host $host;
    proxy_set_header    X-Real-IP $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto $scheme;
    proxy_pass          http://127.0.0.1:9001/;
  }
  ...
}

Эта конфигурация позволяет мне получить доступ к домашней странице приложения по адресу http://mywebserver/app1, но статическое содержимое не загружается.

Когда я открываю консоль своего браузера, я вижу, что он пытается получить ресурсы из http://mywebserver/static/custom/index.js а не что-то вроде http://mywebserver/app1/static/custom/index.js.

Я пытался добавить root директива в блоке местоположения для обслуживания статического, но не принимается во внимание, поскольку запрос статического содержимого выполняется на / а не на /app1.

Как это исправить? Есть ли что-то очевидное, чего мне не хватает, или я совершенно неправильно понял концепцию обратного прокси?

Спасибо.

Предложение от @sikian помогло, я изменил объявление местоположения с location /app1 { ... } к location /app1/ { ... }.

Статические файлы обслуживались без ошибок в консоли, и приложение, похоже, полностью работает.