Я новичок в Nginx, прошу прощения за мое невежество.
В моем приложении NodeJS (ниже Nginx proxy_pass) я хочу получить исходный URL вместе с префиксом ¿ ? используется в директиве location.
Все мои маршруты (около 50 маршрутов API вместе с, скажем, маршрутом /profile
) установлены на прокси с директивой / app / location (я называю это префиксом из-за отсутствия хорошее слово), все мои express маршруты выглядят как app.get('/profile' fun(req,res){})
; и отлично работает при нажатии https: //: / app / profile.
Вот мой Nginx Conf:
server {
listen 80;
listen 443 ssl;
server_name <HOST>;
ssl_certificate ...;
ssl_certificate_key ...;
location /app/ {
proxy_pass https://<HOST>:<PORT>/; //I need the it to be tapered. hence the trailing /
proxy_http_version 1.1;
proxy_set_header Host $host;
}
location /login/ {
proxy_pass https://<HOST>:<PORT>;
proxy_http_version 1.1;
proxy_set_header Host $host;
}
location /log/ {
proxy_pass https://<HOST>:<PORT>/;
proxy_http_version 1.1;
proxy_set_header Host $host;
}
}
Единственная проблема в том, что в мое приложение и когда я делаю req.originalUrl
, я получаю только конусный путь (здесь «/ profile»), но я хочу получить полный путь, который является / app / profile, ie с директивой местоположения ¿prefix ?.
Есть ли способ достичь этого без необходимости изменять все мои маршруты в express? Единственное решение, которое я имею в виду, это передать префикс ¿? в качестве параметра используются переменные Nginx, но это включает в себя изменение всех моих функций express, что звучит даже хуже, чем изменение путей, но дает мне независимость / гибкость в восходящем потоке.
Спасибо за помощь, ура !