Nginx reverse proxy tarafından döndürülen HTML sayfalarını değiştirme


17

İnternetten intranet içinde yer alan bir üçüncü taraf uygulamasına erişim için ters proxy kurulumum var. Bu uygulamanın URL'de olduğunu varsayalım:

https://internalserver:8080/ (yalnızca intranetten erişilebilir)

ve proxy açık:

https://proxyserver/ (dünyanın herhangi bir yerinden erişilebilir)

Proxy nginx tarafından yönetiliyor ve çalışıyor. Kullanıcı eriştiğinde https://proxyserver/ uygulamanın içeriğini adresine alır https://internalserver:8080/.

Sorun, uygulamanın HTML yanıtında mutlak URL'ler yazmasıdır, bu nedenle kullanıcı yeni bir sayfanın bağlantısını tıkladığında, tarayıcı sayfayı dahili adıyla, örneğin https://internalserver:8080/somepage yerine bulmaya çalışır https://proxyserver/somepage.

Bunun bir program hatası olduğunu biliyorum, ancak programı değiştiremiyorum.

Yanıtı kesebilir, URL'leri değiştirebilir ve son istemciye nginx ile gönderebilir miyim? Ya da belki başka bir araçla?

EDIT: Bu soruyu daha önce gördüm , ancak benim durumum daha spesifik, alıntı soru genel bir değişiklik isteyin. Bu durumda fast-cgi ad hoc programı en iyi çözümdür, istediğim daha yaygın bir senaryo için daha spesifik bir çözümdür. Bir fast-cgi programı çalışabilirken, bu senaryo için en kolay ve belki daha güçlü ve gerçek dünyaya kanıtlanmış bir çözüm arıyorum.


Yanıtlar:



3

http://nginx.org/en/docs/http/ngx_http_sub_module.html

Ngx_http_sub_module modülü, belirtilen bir dizeyi diğeriyle değiştirerek yanıtı değiştiren bir filtredir.

Bu modül varsayılan olarak oluşturulmamıştır, --with-http_sub_module yapılandırma parametresiyle etkinleştirilmelidir.

Örnek Yapılandırma

sub_filter      </head>
    '</head><script language="javascript" src="$script"></script>';
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.