Montag, 27. April 2009
cookie based redirect mit nginx
Geschrieben von Harald Lapp in LightTPD, nginx um 15:46
Vor einiger Zeit habe ich einen Tip beschrieben, wie man einen cookie-based redirect mit dem LightTPD konfigurieren kann. Das Problem an der Sache ist für mich, dass das für diesen Zweck verwendete Modul mod_proxy von LightTPD in dem von mir eingesetzen Entwicklungszweig (1.4.x) nicht SSL kompatibel ist und dementsprechend HTTPS Verbindungen fehlschlagen.
Seit einiger Zeit schon habe ich den Web- und (Reverse-) Proxy-Server nginx im Auge. Auch mit diesem Server ist es möglich einen Redirect einzurichten, so wie ich ihn brauche. Und: nginx unterstützt an dieser Stelle SSL!
server {
listen 80;
server_name *.devcenter.int;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
if ($http_cookie ~ "(; )?devredirect=harald") {
proxy_pass http://10.0.0.20;
break;
}
if ($http_cookie ~ "(; )?devredirect=markus") {
proxy_pass http://10.0.0.22;
break;
}
...
}
}
server {
listen 443;
server_name ....devcenter.int;
ssl on;
ssl_certificate /etc/nginx/....crt;
ssl_certificate_key /etc/nginx/....key;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
if ($http_cookie ~ "(; )?devredirect=harald") {
proxy_pass https://10.0.0.20;
break;
}
if ($http_cookie ~ "(; )?devredirect=markus") {
proxy_pass https://10.0.0.22;
break;
}
...
}
}




