What is the right way to enable correct charset headers in NGINX?
I'm analyzing my website with Google Page Speed. It says that I should specify the charset of HTML files in HTTP-headers. What is the right way to do this?
I already tried to set charset utf-8;
in the server {}
declaration of my NGINX configuration file, but it hasn't got any effect.
My server responds with the following header:
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
Thank you.
Adding
charset utf-8;
is pretty much everything you need to do. Are sure that you didn't forget to reload nginx after you changed the configuration file?Besides at the moment of writing, curl -I http://vorb.de/ returns the following result:
So everything looks ok now.
Setting the charset might not work if you do not set "charset_types" directive which you want UTF-8.
For example: When you set "charset utf-8;", all HTML will reflect, but not JSON files, because they are not set by default on "charset_types".
http://nginx.org/en/docs/http/ngx_http_charset_module.html#charset_types
Is what you need. It won't work for me unless I have both.
You might have to also adjust the
charset_types
setting to include the mime type you want to set the charset setting for (e.g. text/calendar is not included there by default).For what it's worth I think that
text/*
should be handled by default - but you cannot use it here (as with Apache IIRC).See http://nginx.org/en/docs/http/ngx_http_charset_module.html#charset_types