Я пытаюсь настроить контейнер openshift для размещения нескольких docker веб-приложений. Идея состоит в том, чтобы использовать настройку маршрутов openshift, чтобы выбрать правильное приложение. Например, я хотел бы иметь возможность выставлять следующие адреса:
https://server_name/ -> connects to default application
https://server_name/application1 -> connects to application1
https://server_name/application1/beta -> connects to beta version of application1
https://server_name/application2 -> connects to application2
Проблема в том, что теперь сервер nginx внутри приложения контейнера получает все запросы с этим префиксом пути вперед согласно маршрут, установленный на openshift.
Какое, по вашему мнению, лучшее решение? Я пытался построить docker образы, используя переменные среды, но это не выглядит лучшим решением.
Обновление 1 Я создал эту nginx конфигурацию:
server {
listen 80;
server_name default_server;
location /beta/ {
rewrite ^/beta/(.*) /$1 break;
proxy_pass http://localhost:8070;
}
}
server {
listen 8070;
server_name real_server;
charset utf-8;
location / {
root /var/www;
try_files $uri $uri/ /index.html;
}
location /api {
rewrite ^/api/(.*) /$1 break;
proxy_pass http://localhost:5001;
}
}
Проблема этого решения заключается в том, что index. html запрашивает ресурсы на локальном, а не локальном: 8070 или localhost / beta, поэтому, конечно, они не найдены.