Cómo habilitar el encabezado HTTP de charset correcto en NGINX


39

¿Cuál es la forma correcta de habilitar los encabezados de juego de caracteres correctos en NGINX?

Estoy analizando mi sitio web con Google Page Speed. Dice que debería especificar el juego de caracteres de los archivos HTML en los encabezados HTTP. ¿Cuál es la forma correcta de hacer esto?

Ya intenté establecer charset utf-8;la server {}declaración de mi archivo de configuración NGINX, pero no tuvo ningún efecto.

Mi servidor responde con el siguiente encabezado:

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

Gracias.


El enlace ya no funciona.
Pothi Kalimuthu

Respuestas:


38

Agregar charset utf-8;es prácticamente todo lo que necesitas hacer. ¿Está seguro de que no olvidó volver a cargar nginx después de cambiar el archivo de configuración?

Además al momento de escribir, curl -I http://vorb.de/ devuelve el siguiente 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

Entonces todo se ve bien ahora.



5

Es posible que también deba ajustar la charset_typesconfiguración para incluir el tipo mime para el que desea establecer la configuración del juego de caracteres (por ejemplo, el texto / calendario no está incluido allí de forma predeterminada).

Por lo que vale, creo que text/*debería manejarse de forma predeterminada, pero no puede usarlo aquí (como con Apache IIRC).

Ver http://nginx.org/en/docs/http/ngx_http_charset_module.html#charset_types


2
    charset utf-8;
    source_charset utf-8;

Es lo que necesitas No funcionará para mí a menos que tenga ambos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.