Referer rewrite on nginx reverse proxy

Nginx reverse proxy.の続きです。 急にReferer偽装というか書き換えを行いたくなったのでメモ。

/etc/nginx/conf.d/proxy.conf

location ~ /http/(.*?)/(.*) {
        resolver 8.8.8.8;
        proxy_pass http://$1/$2;
        proxy_set_header X-Forwarded-Server $1;
}

前回、書いたconfファイルに追記します。

/etc/nginx/conf.d/proxy.conf

location ~ /http/(.*?)/(.*) {
        resolver 8.8.8.8;
        proxy_pass http://$1/$2;
        proxy_set_header Referer http://$1/$2;
        proxy_set_header X-Forwarded-Server $1;
}

このようにproxy_set_header Referer [リファラ];とすると、リファラの書き換えを行えるようです。 ただ、今のこの書き方だと$2にリクエストしたURLのパスが入るので、リクエスト元を完全に指定しているようなサイトには無効ですね。

恐らくGETパラメーターでリファラのURLを渡して、それに書き換えるのが一番良いのでしょうけど、そこまでやるべきかは考え中です。