Nginx transparent reverse proxy
Nginxでアクセス先からは通常のリクエストと同じように見えるReverse proxyを建ててみました。 こういったProxyを何て言うのでしょうね。
/etc/nginx/sites-enabled/proxy.conf
location ~ /http/(.*?)/(.*) { proxy_pass http://$1/$2; proxy_set_header Host $1; proxy_set_header X-Forwarded-For ""; proxy_set_header X-Forwarded-Server ""; proxy_set_header X-Forwarded-Host ""; proxy_set_header X-Forwarded-Scheme ""; proxy_set_header X-Forwarded-Port ""; proxy_set_header X-Forwarded-Proto ""; proxy_set_header Referer http://$1/; proxy_set_header Client-IP $remote_addr; }
Nginxでリバースプロキシーの設定をするとX-Forwarded系のヘッダーがセットされてproxy_pass
へ送信してしまいます。
そこで一旦、X-Forwarded系のヘッダーを空にしてあげると送信されなくなるようです。
(ただ、値は空で送りたいときはどうするんだろう?と思います。そういった状況が思いつきませんが)
あとは、Cookieの送信と受信のタイミングでドメインの書き換えを行ってやれば完全に透過なProxyを構築できそうです。