nginx subdomains improperly act like wildcard?
- by binjured
I have an odd problem with nginx subdomains. First, my configuration:
server {
listen 443 ssl;
server_name secure.example.com;
ssl_certificate example.crt;
ssl_certificate_key example.key;
keepalive_timeout 70;
location / {
fastcgi_pass 127.0.0.1:8000;
...
}
}
server {
listen 80;
server_name example.com www.example.com;
location / {
fastcgi_pass 127.0.0.1:8000;
...
}
}
The idea being that I have a secure domain, secure.example.com and a normal domain, example.com. In practice, I can go to https://example.com and http://secure.example.com. I worked around the second issue with an intermediary server:
server {
listen 80;
server_name secure.example.com;
rewrite ^(.*) https://secure.example.com$1 permanent;
}
But this is not an optimal solution and I'd have to create another one to redirect https on the tld to the subdomain. I feel like I must be doing something wrong if I need multiple servers like that. Why does https://example.com work when there is no server listening on 443 there? Shouldn't it just fail to connect? I'm rather confused.