Страница 1 из 1

nginx реверс прокси с подстановкой строки

Добавлено: 2024-09-15 13:00:20
guest
граждане, подскажите плз, как на фронтэнде нжинкса сделать подстановку некоторой строки в урл? :drinks:
хочу новнц на бэкенды виртуалок напилить..
некий "умник" предлагает такую шляпу:

Код: Выделить всё

  server {
    listen 80 default_server;
    
    location / {
      root /www/data;
      try_files $uri $uri/ /index-both.html;
    }
    
    location /novnc/alice/ {
      proxy_pass http://127.0.0.1:6080/;
    }
    
    location /novnc/alice/websockify {
      proxy_pass http://127.0.0.1:6080/;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "Upgrade";
      proxy_set_header Host $host;
    }
    
    location /novnc/bob/ {
      proxy_pass http://127.0.0.1:6081/;
    }
    
    location /novnc/bob/websockify {
      proxy_pass http://127.0.0.1:6081/;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "Upgrade";
      proxy_set_header Host $host;
    }
  } 
но для доступа к виртуалкам предлагает в индексный хтмл index-both.html руками вписывать полный урл для доступа такого вида:

Код: Выделить всё

<a href="http://127.0.0.1/novnc/alice/vnc.html?resize=remote&path=novnc/alice/websockify">Alice</a>
<a href="http://127.0.0.1/novnc/bob/vnc.html?resize=remote&path=novnc/bob/websockify">Bob</a>
ну этож полнейший идиотизм!!! :fool:

можно же както зареврайтить в самом локейшине недостающую строку соксификатора ( /vnc.html?resize=remote&path=novnc/alice/websockify ), чтобы она сама добавлялась при вводе только начальной части ( http://127.0.0.1/novnc/alice )??

этож элементарно должно делаться... я думаю... :bn:

nginx реверс прокси с подстановкой строки

Добавлено: 2024-09-18 9:29:07
Пермяк - солёны уши!
Уважаемый, тебе надо, чтобы условно ссылка была: http://my.host/novnc/alice,
а тебе выдавался бы результат как будто ты перешёл по ссылке с дополнением к URL'у /vnc.html?resize=remote&path=novnc/alice/websockify?

Если да, то тебе надо rewrite добавить в секцию location /novnc/alice/, что-то типа такого:

Код: Выделить всё

rewrite    ^/novnc/alice$ /novnc/alice/vnc.html?resize=remote&path=novnc/alice/websockify;
Это если я правильно тебя понял. А в более общем виде - можно сразу в секцию server добавить:

Код: Выделить всё

rewrite    ^/novnc/(\w+)$ /novnc/$1/vnc.html?resize=remote&path=novnc/$1/websockify;
И в таком случае вроде без разницы сколько у тебя Бобов, Алисов и прочих будет, все должны единообразно перенаправляться.

nginx реверс прокси с подстановкой строки

Добавлено: 2024-09-18 9:38:40
Пермяк - солёны уши!
Добавлю: Я там с конечными слэшами возможно некорректно указал. (в rewrite'е без конечного слеша, а location подразумевает, что он есть) Сам уже разберись в процессе.