Отдельный веб-сайт с тем же доменным именем, добавив путь / organizationx в URL - PullRequest
0 голосов
/ 11 марта 2020

У меня есть 2 контейнера веб-сайтов, которые прослушивают app1.com/ и app2.com/, и они могут иметь одинаковые конечные точки.

Я хочу создать Nginx прокси для отдельных организаций:

  • http://<proxy-ip>/organisation1 для прослушивания здесь app1.com/
  • http://<proxy-ip>/organisation2 для прослушивания здесь app2.com/

Пользователи должны видеть http://<proxy-ip>/organisation1/movies и все css/js для пересылки на http://<proxy-ip>/organisation1/css/a.css

Расположение в приложении app1.com/movies и app1.com/css/a.css et c.

Проблема в том, что метод перезаписи не пересылает /organisationX.

Как добавить и переслать это на URL, если местоположение не существует в реальном приложении?

server {
   listen 80;
   location /organisation1 {
       proxy_set_header   Host $host;
       proxy_set_header   X-Real-IP $remote_addr;
       proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header   X-Forwarded-Proto $scheme;
       proxy_set_header   X-Forwarded-Host $host/organisation1;
       proxy_pass         http:app1.com

   }
   location /organisation2 {
       proxy_set_header   Host $host;
       proxy_set_header   X-Real-IP $remote_addr;
       proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header   X-Forwarded-Proto $scheme;
       proxy_set_header   X-Forwarded-Host $host/organisation2;
       proxy_pass         http:app2.com
   }
}

1 Ответ

0 голосов
/ 12 марта 2020

ngx_http_rewrite_module поможет вам

См. Руководство:

Если указанное регулярное выражение соответствует URI запроса, URI изменяется, как указано в _replacement_ строка.

Попробуйте этот код:

server {
   listen 80;
   location /organisation1 {
       rewrite ^/organisation1/(.*) /$1 break;       
       ...
       proxy_pass         http:app1.com

   }
   location /organisation2 {
       rewrite ^/organisation2/(.*) /$1 break;       
       ...
       proxy_pass         http:app2.com
   }
}
...