您的位置:首页 > 运维架构 > Nginx

配置NGINX支持中文URL 中文文件名称或文件夹404无法訪问的解决方法

2014-06-05 18:04 716 查看
NGINX不须要象apache那样要单独载入支持中文模块。

# cat /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" 假设没有i18n则创建,重新启动系统。

server端字符集例如以下 # locale LANG=en_US.UTF-8 LC_CTYPE=”en_US.UTF-8″ LC_NUMERIC=”en_US.UTF-8″ LC_TIME=”en_US.UTF-8″ LC_COLLATE=”en_US.UTF-8″ LC_MONETARY=”en_US.UTF-8″ LC_MESSAGES=”en_US.UTF-8″ LC_PAPER=”en_US.UTF-8″ LC_NAME=”en_US.UTF-8″ LC_ADDRESS=”en_US.UTF-8″ LC_TELEPHONE=”en_US.UTF-8″
LC_MEASUREMENT=”en_US.UTF-8″ LC_IDENTIFICATION=”en_US.UTF-8″ LC_ALL=

在nginx.conf文件中配置的字符集也是utf-8 server { listen 80; server_name test.cn; root /data; index index.html index.jsp; charset utf-8; ……


client用的是secureCRT,用的字符集改为utf-8,用uft-8后再用rz上传文件,在ie下中文能够正常显示了。

Apache能够使用mod_encoding支持中文文件夹和文件,LNMP下Nginx事实上不须要安装额外的组件就可以支持中文文件名称或中文文件夹,以下说一下常见的CentOS、Debian、Ubuntu Linux发行版下的设置方法和可能会遇到的问题:

设置前能够运行:locale 看一下,假设显示是en_US.UTF-8,即是正常,不用按以下的步骤设置。假设显示其它编码须要按例如以下步骤设置。

CentOS

编辑/etc/sysconfig/i18n 文件,内容改动为:(能够使用vi、nano或winscp图形管理软件,依个人口味选择)

LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"


保存,重新启动系统。

Debian

apt-get install -y locales
dpkg-reconfigure locales


运行dpkg-reconfigure locales后会出现例如以下对话框:

用向下的方向键找到en_US.UTF-8 UTF-8,按空格选择,再按回车键。

再按向下键选择en_US.UTF-8,再按回车键确认,重新启动系统。

Ubuntu

编辑/etc/default/locale文件,改动内容为(没有的话创建一个):

LANG="en_US.UTF-8"
LANGUAGE="en_US:en"


保存,再运行:

locale-gen en_US en_US.UTF-8


重新启动系统。

运行:locale 看一下是否显示是en_US.UTF-8,假设报错,请在本文反馈。按以上步骤设置好后就可以支持中文,能够上传中文的文件或中文的文件夹。

第七城市th7cn
WDCP 隐藏Nginx版本教程

各大门户都隐藏nginx的版本 他们如此做必有道理所以我们也学习吧

总共两步!

第一步:

先到 /www/wdlinux/nginx-1.4.1(我升级了版本号)/conf 下 找到 nginx.conf 文件

然后打开找到 tcp_nodelay on; 在以下那一行加入 server_tokens off; 就可以

如:

keepalive_timeout 60;

tcp_nodelay on;

server_tokens off;

这样即可了 (高手别笑,教程本来就是要方便简便)

第二步:

假设升级了新版本号直接略过~~~~~

只是还是提下为好

还是在相同的文件夹 找到 fcgi.conf 打开

然后找到 fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

更改成:fastcgi_param SERVER_SOFTWARE nginx; 就可以

然后重新启动WEB服务 或者 重新启动server吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: