July 18, 2009
I was trying to set up a subdomain, photos.kylebanker.com, using nginx. No problems, until I realized that *.kylebanker.com (e.g., whatever.kylebanker.com) was resolving to the content at photos.kylebanker.com. Here’s my initial configuration. Do you see the what’s wrong?
1 2 # Redirect all requests containing 'www.kylebanker.com' 3 # to 'kylebanker.com' 4 server { 5 listen 80; 6 server_name www.kylebanker.com; 7 rewrite ^(.*) http://kylebanker.com$1 permanent; 8 } 9 10 # Listen for kylebanker.com 11 server { 12 listen 80; 13 server_name kylebanker.com; 14 15 access_log /var/log/nginx/blog.access.log; 16 17 location / { 18 root /home/blog/public; 19 index index.html index.htm; 20 } 21 } 22 23 # Listen for photos.kylebanker.com 24 server { 25 listen 80; 26 server_name photos.kylebanker.com; 27 28 access_log /var/log/nginx/photos.access.log; 29 30 location / { 31 root /home/photos/public; 32 index index.html index.htm; 33 } 34 } 35
Turns out that I needed to add a wildcard alias. Line 6 should read as follows:
server_name kylebanker.com *.kylebanker.com;
Was this simply too obvious to be documented elsewhere?