Comment activer l'en-tête HTTP correct du jeu de caractères dans NGINX


39

Quelle est la bonne façon d'activer les en-têtes de jeu de caractères corrects dans NGINX?

J'analyse mon site avec Google Page Speed. Il dit que je devrais spécifier le jeu de caractères des fichiers HTML dans les en-têtes HTTP. Quel est le bon moyen de le faire?

J'ai déjà essayé de définir charset utf-8;la server {}déclaration de mon fichier de configuration NGINX, mais cela n'a aucun effet.

Mon serveur répond avec l'en-tête suivant:

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

Merci.


Le lien ne fonctionne plus.
Pothi Kalimuthu

Réponses:


38

L'ajout charset utf-8;est à peu près tout ce que vous devez faire. Etes-vous sûr de ne pas oublier de recharger nginx après avoir modifié le fichier de configuration?

En plus, au moment de l'écriture, curl -I http://vorb.de/ renvoie le résultat suivant:

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

Donc, tout va bien maintenant.



5

Vous devrez peut-être également ajuster le charset_typesparamètre pour inclure le type MIME pour lequel vous souhaitez définir le paramètre jeu de caractères (par exemple, le texte / le calendrier n'y est pas inclus par défaut).

Pour ce que cela vaut, je pense que cela text/*devrait être traité par défaut - mais vous ne pouvez pas l’utiliser ici (comme avec Apache IIRC).

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


2
    charset utf-8;
    source_charset utf-8;

Est ce que vous avez besoin. Cela ne fonctionnera pour moi que si j'ai les deux.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.