Como obter o nome do host do pedido nginx

1

Olá, estou tentando redirecionar todas as minhas solicitações para usar https. Eu criei um bloco de servidor que escuta na porta 80 (http) e eu quero redirecionar o usuário para usar https:// no entanto não tenho certeza como obter o nome do host.

aqui está o meu bloco de servidores

server
{
    listen 80;
    server_name : *.example.org
    return 301 https://{{hostname}}$request_uri
}

Eu sei que o URI é acessado por $request_uri , mas não tenho certeza de como obter o nome do host.

Você os anexa ao lado um do outro sem espaço?

    
por AlanZ2223 05.04.2016 / 23:47

1 resposta

2

O link que Michael Hampton postou explica as variáveis em mais detalhes, mas aqui está uma resposta direta.

server
{
    listen 80;
    server_name *.example.com;
    return 301 https://$host$request_uri;
}

Você pode ver o trabalho usando curl e olhando para o cabeçalho.

link para o link

[root@hm1 conf.d]# curl --head bob.example.com
HTTP/1.1 301 Moved Permanently
Server: nginx/1.9.13
Date: Wed, 06 Apr 2016 02:01:24 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: https://bob.example.com/
Strict-Transport-Security: max-age=15780000; preload
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff

link para link

[root@hm1 conf.d]# curl --head alice.example.com
HTTP/1.1 301 Moved Permanently
Server: nginx/1.9.13
Date: Wed, 06 Apr 2016 02:01:39 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: https://alice.example.com/
Strict-Transport-Security: max-age=15780000; preload
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
    
por 06.04.2016 / 04:08

Tags