Tag 195/2016: nginx response filter

Wer nginx als Proxy verwendet, konfiguriert im Regelfall die Header, die an den Upstream weitergegeben werden, z.B. den Host-Header oder die IP-Adresse des eigentlichen Clients (und nicht von nginx selbst) als X-Real-IP oder X-Forwarded-For. Darüber hinaus ist es oft notwendig, Redirects des Upstream zu erkennen und auf einen anderen Host oder Port umzuschreiben, gleiches gilt für Cookies.

In seltenen Fällen muss man aber noch weiter gehen und nicht nur die Header, sondern den Response umschreiben, z.B. bestimmte im HTML enthaltene Strings (Formular-Ziele, Script- oder CSS-Links).

Dafür gibt es das ngx_http_sub_module:

location / {
    sub_filter '<a href="http://127.0.0.1:8080/'  '<a href="https://$host/';
    sub_filter '<img src="http://127.0.0.1:8080/' '<img src="https://$host/';
    sub_filter_once on;
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)