Я использовал Nginx в качестве балансировщика нагрузки и обратного прокси-сервера с успехом, но эта проблема, которая кажется очень простой, сбила меня с толку. Я потратил несколько часов, пытаясь настроить Nginx, но потерпел неудачу.
У меня есть динамический c набор серверов / имен хостов (из-за использования docker), скажем, service2, service3, service5. Я просто хочу настроить nginx для прокси к ним на основе URL. Цель этого состоит в том, чтобы я мог получить доступ к службам из одной конечной точки, а не выставлять их всех.
Это тип прокси, который я пытаюсь заставить работать
Если я укажу все конечные точки, это будет работать, хотя все еще только для начальной страницы, поэтому http://localhost: 8009 / service2 сделать прокси для http://service2/ однако http://localhost: 8009 / service2 / home просто не удается, но это может быть из-за того, что он не соответствует местоположению. Если, если я просто сделаю определение местоположения / оно работает, то я могу только отменить прокси-запросы на все запросы к одному серверу.
server {
listen 80;
server_name localhost;
location /service2 {
proxy_pass http://service2/;
}
location /service5 {
proxy_pass http://service5/;
}
}
Вот, пожалуй, мой лучший пример переопределения URL-адреса для Dynami c, но это просто ошибки, поэтому предположим, что это не верно для nginx.
server {
listen 80;
server_name localhost;
location ~ (?<myhost>.*)/(?<myuri>.*)$ {
proxy_pass http://$myhost/$myuri;
}
}