首页 » VPS 知识 » 浏览内容
让VPS的 Nginx 支持中文url
新买的VPS,安装了 CentOS 5.5,储存了带中文的mp3或jpg文件,发现在调用时 有404 出错,找不到文件,估计是中文编码的问题,搜索下,解决方法就是把 Linux 系统字符集设成utf8,是设成 en_US.utf8还是zh_CN.utf8,经我测试,好象二者皆可,我选择了 en_US.utf8。
用”locale”查看系统的编码(默认就是 POSIX,关于 locale 详解,可以参看这里):
#locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
显然我的系统字符集还不是utf8,将下面这句加入到文件 /etc/profile,”vi /etc/profile”,就加在最下面好了:
export LANG=en_US.UTF8
保存退出,重新启动系统,运行 locale,结果如下:
# locale
LANG=en_US.UTF8
LC_CTYPE="en_US.UTF8"
LC_NUMERIC="en_US.UTF8"
LC_TIME="en_US.UTF8"
LC_COLLATE="en_US.UTF8"
LC_MONETARY="en_US.UTF8"
LC_MESSAGES="en_US.UTF8"
LC_PAPER="en_US.UTF8"
LC_NAME="en_US.UTF8"
LC_ADDRESS="en_US.UTF8"
LC_TELEPHONE="en_US.UTF8"
LC_MEASUREMENT="en_US.UTF8"
LC_IDENTIFICATION="en_US.UTF8"
LC_ALL=
NGINX配置文件里添加一句 “charset utf-8″,设置为类似下面的
server
{
listen 80;
server_name www.xxx.net;
index index.html index.htm index.php;
root /home/wwwroot;
charset utf-8;
}
重新启动 LNMP,/root/lnmp restart,看看如何。