Eu uso isso para levar os usuários a um serviço https:
server {
listen 80;
server_name mail.polemon.org;
rewrite ^(.*)$ https://mail.polemon.org$1 permanent;
}
e esta é uma regra geral:
server {
listen 80;
server_name polemon.org *.polemon.org;
if ($host != polemon.org) {
rewrite ^(.*)$ http://polemon.org$1 permanent;
}
}
O pega-tudo deve ser definido por último, caso contrário, outros subdomínios não funcionarão.
E aqui está outro exemplo, como lidar com pessoas que não têm linha de cabeçalho Host:
:
server {
listen 80 default;
server_name _;
server_name_in_redirect off;
root /var/www/jail/;
index index.html;
}
Como nota lateral, você pode criar certificados para nomes DNS com caracteres curinga. Esses são chamados de "certificados wild" e, mesmo que sejam válidos, os usuários do Firefox ainda recebem avisos.