Como ativar o cabeçalho HTTP do conjunto de caracteres correto no NGINX

36

Qual é o caminho certo para habilitar cabeçalhos de conjuntos de caracteres corretos no NGINX?

Estou analisando meu website com o Google Page Speed. Ele diz que devo especificar o conjunto de caracteres de arquivos HTML nos cabeçalhos HTTP. Qual é o caminho certo para fazer isso?

Eu já tentei definir charset utf-8; na declaração server {} do meu arquivo de configuração NGINX, mas ele não tem nenhum efeito.

Meu servidor responde com o seguinte cabeçalho:

Connection: keep-alive
Date: Fri, 16 Sep 2011 12:43:24 GMT
Last-Modified: Fri, 02 Sep 2011 15:13:17 GMT
Server: nginx/0.7.67

Obrigado.

    
por pvorb 16.09.2011 / 14:47

3 respostas

34

Adicionar charset utf-8; é praticamente tudo que você precisa fazer. Tem certeza de que você não esqueceu de recarregar o nginx depois de ter alterado o arquivo de configuração?

Além disso, no momento em que escrevo, curl -I link retorna o seguinte resultado:

HTTP/1.1 200 OK
Server: nginx/0.7.67
Date: Fri, 16 Sep 2011 13:20:03 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 1705
Last-Modified: Fri, 02 Sep 2011 15:13:17 GMT
Connection: keep-alive
Vary: Accept-Encoding
Accept-Ranges: bytes

Então tudo parece bem agora.

    
por 16.09.2011 / 15:25
20

A configuração do conjunto de caracteres pode não funcionar se você não definir a diretiva "charset_types" que deseja usar como UTF-8.

Por exemplo: Quando você define "charset utf-8;", todo o HTML refletirá, mas não os arquivos JSON, porque eles não são definidos por padrão em "charset_types".

link

    
por 05.10.2012 / 23:52
5

Talvez seja necessário também ajustar a configuração charset_types para incluir o tipo mime para o qual você deseja definir a configuração do conjunto de caracteres (por exemplo, o texto / calendário não é incluído por padrão).

Por que vale a pena eu acho que text/* deve ser tratado por padrão - mas você não pode usá-lo aqui (como no Apache IIRC).

Veja o link

    
por 18.05.2012 / 22:37