У меня есть несколько служб, работающих на других серверах, которые предоставляют веб-приложения на 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 это сработает, если вам действительно нужно пойти по этому пути.