Seu segundo exemplo funcionará para todas as solicitações que forem enviadas para o link . No entanto, lembre-se de que www.example.com e example.com são diferentes. necessário para redirecionar para qualquer coisa em example.com você poderia fazer
server {
listen 80;
server_name *.example.com;
return 301 https://$server_name$request_uri;
}
ou então redirecionar para cada host, ou seja,
server {
listen 80;
server_name www.example.com example.com images.example.com cdn.example.com;
return 301 https://$server_name$request_uri;
}
Certifique-se de testar a configuração via nginx -t
e recarregar a configuração quando fizer alterações através de um recarregamento nginx. Você pode testar o que obtém via cabeçalhos http ativos ou curl
A saída abaixo é o que eu vejo ao tentar uma solicitação de cabeçalho http para um domínio que direcionamos para https com o bloco de servidor exato acima.
$ curl -I -L http://host.domain.com
HTTP/1.1 301 Moved Permanently
Server: nginx/1.6.2
Date: Mon, 06 Apr 2015 03:26:39 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: https://host.domain.com/
HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Mon, 06 Apr 2015 03:26:41 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.5.22
Set-Cookie: PHPSESSID=dca72682392e7ac96d4b7703ea7a1eb1; path=/; domain=domain.com; secure; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=c910822f8007fe8c0424715a24aa4728; path=/; domain=domain.com; secure; HttpOnly