Назад | Перейти на главную страницу

Заставляем Nginx перезаписывать ответы серверной части

У меня есть несколько служб, работающих на других серверах, которые предоставляют веб-приложения на http: // someLocalIp: 80 без SSL. Я хочу обернуть это в ssl и сделать его общедоступным на https: // nginxServer-globalIp / delivery /

Я могу видеть такую ​​бэкэнд-службу, но это, очевидно, нарушит все ссылки и ссылки, потому что теперь "/ delivery /" должен быть префиксом. Я не понимаю, как использовать перезапись, потому что перезапись, как мне кажется, используется в основном для изменения запросов, а не ответов от бэкэнда. Это вообще возможно? :)

текущая конфигурация:

server {
    listen 443;
    ssl on;
    ssl_certificate /etc/ssl/some.crt;
    ssl_certificate_key /etc/some.key;
    location /deliver {
            proxy_pass http://someLocalIp;
    }
}

Я попытался добавить / в конце proxy_pass (как предлагают многие ответы), но это создает пустой ответ, как если бы серверная служба ничего не доставляла в nginx.

Кроме того, изменить серверную часть, чтобы она соответствовала префиксу "/ delivery", не так просто, как кажется, поэтому я надеюсь, что это можно сделать и без этого.

Обратный прокси имеет свои ограничения. В любом случае перезапись каждого встроенного URL-адреса (гиперссылки, изображения, ссылки на ресурсы) обойдется дорого.

Как вы догадались, nginx модуль прокси может переписать запрос и может переписать location в ответе на перенаправление. Но в остальном прилагаемый HTML-документ остается нетронутым.

Однако я читал, что есть Модуль Apache это сработает, если вам действительно нужно пойти по этому пути.