root-папка
Если идёт обращение к /app - то надо перенаправить на локально запущенный веб-сервер - http://localhost:19999;
Что я сделал:
upstream my_app {
server http://localhost:19999;
}
...
location = /my_app {
proxy_pass http://my_app/;
}
Проблема заключается в отсутствии css / картинок на сайте, если открывать напрямую по порту без проксирования nginx - всё работает
Судя по логам nginx - данные (картинки и тд) пытаются загрузиться из вышестоящей root-папки, я попробовал перед proxy_pass прописать нужную папку, откуда брать данные, не помогло
Как можно решить это?
В общем случае надо сделать так, чтобы то приложение, что ты проксируешь, запрашивало свои ассеты или используя относительные пути, или с учётом URI-prefixa Всё остальное будет костыль разной степени ненадёжности
Я могу запустить это не используя отдельное приложение: server { listen 19999; root /usr/share/app/web/; } Приложение - просто http сервер, проблема в том, что через такой проксирование ассеты подгружаются с главного root
Разницу между абсолютными и относительными ссылками понимаешь? Вот абсолютная: <link rel="stylesheet" type="text/css" href="/css/style.css"> Вот относительная: <link rel="stylesheet" type="text/css" href="css/style.css"> И вот относительная: <link rel="stylesheet" type="text/css" href="./css/style.css"> Если то, что ты проксируешь, будет пытаться подгружать свои ассеты, используя абсолютные пути, которые не будут начинаться с /my_app/, такие запросы совершенно очевидным образом не попадут в твой location /my_app/ { ... }.
Проверь нет ли в конфиге отдельной location для статики
Обсуждают сегодня