Nginx proxy_pass для перенаправления после аутентификации. NodeJS, ExpressJS - PullRequest
0 голосов
/ 15 февраля 2020

Я новичок в 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, что звучит даже хуже, чем изменение путей, но дает мне независимость / гибкость в восходящем потоке.

Спасибо за помощь, ура !

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