LINUX.ORG.RU
ФорумAdmin

Nginx. Как правильно разграничить два приложения на одном бэкенде?

 ,


0

1

Всем привет!

Подскажите пожалуйста. Как правильно разграничить два приложения на одном бэкенде? В текущем конфиг конфиг простой

server {
    listen 80;
    server_name  service.site.com;
    return 301 https://$host$request_uri;
}
server {
    listen       443 ssl;
    server_name service.site.com;
    include /etc/nginx/ssl.conf;

    # HTTP
    location / {
        proxy_pass http://127.0.0.1:9090/;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
    }
}

При открытии https://service.site.com открывается https://service.site.com/console (127.0.0.1:9090) У меня есть внутреннее приложение на бэкенде с ссылкой https://service.site.com/apps/my (127.0.0.1:9090//apps/my)

В итоге хочется перенастроить так: https://service.site.com > https://service.site.com/apps/my (127.0.0.1:9090//apps/my) (редирект или реврайт лучше?) https://service.site.com/console > https://service.site.com/console (127.0.0.1:9090)

Как правильно это сделать? Спасибо заранее

server {
listen       443 ssl;
    server_name forum.google.com;
    include /etc/nginx/ssl.conf

location / {
    proxy_pass http://192.168.13.31;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    }
}

server {
listen       443 ssl;
    server_name blog.google.com;
    include /etc/nginx/ssl.conf

location / {
    proxy_pass http://192.168.13.32;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    }
}

Примерно так. Сертификаты соответственно для каждого доменного имени, свои быть должны.

sfedosenko ()
Последнее исправление: sfedosenko (всего исправлений: 1)

С помощью location.

gruy ★★★★★ ()
 location / {
        proxy_pass http://127.0.0.1:9090//apps/my/;
        ...
 }

 location /console/ {
        proxy_pass http://127.0.0.1:9090/;
        ...
 }

kostik87 ★★★★★ ()

Очень непонятное описание, ты хочешь браузерное перенаправление поменять или что?

firkax ★★★ ()

Что значит «разграничить»? обычно говоря о бекенде подразумевают пыху. пыха имеет инстансы. Инстансы слушают на разных портах\униксокетах, в инжиниксе прокси в разный сокет. за несколько доменов можно юзать vhost. Что касается урла - редирект реврайт, да хоть сразу в сервернейм со слешами запихать. Типовой конфиг. 127.0.0.1:9090//apps/my какая то дичь. нахера?

antech ()

Сделай location /console с прокиспассом в 127.0.0.1:9090/

Сделай location /my/apps с проксипассом в 127.0.0.1:9090/my/apps

Сделай location / с редиректом на /my/apps

cobold ★★★★ ()
Последнее исправление: cobold (всего исправлений: 1)
Ответ на: комментарий от cobold

А хотя нет, скорее всего не сработает, т.к. приложение 127.0.0.1:9090/ будет генерить html с абсолютными ссылками от корня, где у тебя ничего нет. А вот если приложению пояснить как-то чтобы оно делало ссылки вида /console/foo, или использовало относительные ссылки, тогда шанс есть

cobold ★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.