Quick Tip: How to change nginx server header using varnish

This is how my custom server header looks like (Server:R2D2) -

curl -I www.slashgeek.net
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT
Expires: Sun, 12 May 2013 02:55:30 GMT
Pragma: public
Cache-Control: max-age=3600, public, must-revalidate, proxy-revalidate
Etag: c39b09b955e4bb5b69b56bce7e36ce7e
X-Powered-By: W3 Total Cache/0.9.2.9
Vary: Accept-Encoding
Server: R2D2
Date: Sun, 12 May 2013 02:06:43 GMT
X-Varnish: 1472756484 1472756321
Age: 673
Via: 1.1 varnish
Connection: keep-alive

To use custom server header with nginx you will have to recompile nginx from source using headers-more-nginx-module module. It might not always be the ideal solution, specially if you enjoy the seamless update feature of package managers or your server configs are not located on default paths. There is another painless way to change your server header using varnish. Varnish is often used as reverse proxy in front of nginx, for a fast and responsive site during high traffic.

Unlike changing server header with nginx, it is very trivial to do this with varnish. Edit varnish config located (Ubuntu) at /etc/varnish/default.vcl and edit these two lines to look like below, make sure to use your own custom server name by changing “R2D2″.

unset beresp.http.Server;
set beresp.http.Server = "R2D2";




Feel free to follow us on Facebook and Twitter or just subscribe to our RSS feed.



space invader