nginx文件名|nginx下中文文件名问题有一劳永逸的解决办法吗

nginx文件名|nginx下中文文件名问题有一劳永逸的解决办法吗的第1张示图

① nginx 不支持中文文件名吗

nginx上传的中文文件名会依据网页的编码(比如gbk,utf8)被编码为%开始的字符串,再直接读取可能有问题的。可以上传中文命名的文件,但上传后程序收到后处理时,请保存为字母或数字命名的文件名。

② 如何安装nginx

Windows下安装:1.下载nginx压缩包zip文件2.解压到一个目录中3.找到nginx.exe双击即可一般需要对nginx.conf文件进行配置,如不配置,只能看到欢迎页Linux下安装:一、下载→编译→安装→启动1.下载nginx最新版到官方网站上下载最新的tar.gz包直接下载nginx的url为http://nginx.org/download/nginx-{version}.tar.gz,其中{version}为nginx的版本号命令:[[email protected] ~]# wget http://nginx.org/download/nginx-1.9.14.tar.gz2.解压文件[[email protected] ~]# tar -zvxf nginx-1.9.14.tar.gz3.进入nginx解压目录[[email protected] ~]# cd nginx-1.9.144.使用参数进行编译,后面会给出编译参数的具体解释[[email protected] nginx-1.9.14]# ./configure –prefix=/etc/nginx –sbin-path=/usr/sbin/nginx –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –pid-path=/var/run/nginx.pid –lock-path=/var/run/nginx.lock –http-client-body-temp-path=/var/cache/nginx/client_temp –http-proxy-temp-path=/var/cache/nginx/proxy_temp –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp –http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp –http-scgi-temp-path=/var/cache/nginx/scgi_temp –user=nginx –group=nginx –with-http_ssl_mole –with-http_realip_mole –with-http_addition_mole –with-http_sub_mole –with-http_dav_mole –with-http_flv_mole –with-http_mp4_mole –with-http_gunzip_mole –with-http_gzip_static_mole –with-http_random_index_mole –with-http_secure_link_mole –with-http_stub_status_mole –with-http_auth_request_mole –with-mail –with-mail_ssl_mole –with-file-aio –with-ipv6 –with-http_v2_mole5.执行编译过程[[email protected] nginx-1.9.14]# make && make install6.配置nginx.conf7.启动nginx[[email protected] nginx-1.9.14]# nginx二、编译参数–prefix=path定义保存服务器文件的目录。这个目录同时将作用于nginx.conf配置文件中配置的相对路径(但不包括源码库的路径)。默认值为/usr/local/nginx。–sbin-path=path设置nginx可执行文件的名称,该名称只在安装期间使用。默认值是prefix/sbin/nginx–conf-path=path设置nginx.conf配置文件的名称。如果需要,nginx可以使用不同的配置文件启动,你可以通过命令行参数 -c file启动。默认文件名为prefix/conf/nginx.conf–pid-path=path设置nginx.pid文件的名称,nginx.pid用于存储主进程的进程ID。安装后,该文件名称可以在nginx.conf的pid指令中修改。默认为prefix/logs/nginx.pid–error-log-path=path设置重要的错误、警告以及诊断文件的名字。安装后,可以通过nginx.conf的error_log指令修改。默认为prefix/logs/error.log–http-log-path=path记录主要请求日志的名称,安装后通过access_log指令修改。默认为prefix/logs/access.log–user=name设置工作进程的用户名,安装后可以通过user指令修改。默认值为nobody–group=name设置工作进程的用户组,安皇后可以通过user指令修改,默认与user相同。–with-xxx_mole安装xxx模块,这些模块可以在nginx文档中找到。–without-xxx_mole不安装xxx模块(有些模块是默认安装的,如果不想安装,可以通过这个参数屏蔽),这些模块可以在nginx文档中找到。

③ nginx下中文文件名问题有一劳永逸的解决办法吗

其实,要解决nginx不支持pathinfo的问题,有两个解决思路,一是不使用pathinfo模式,二是修改nginx的配置文回件,使它支持pathinfo。为了使问题答简单化,我选择了第一种方式,因为就第二种方式,我查了很多资料,发现大家的方法不尽相同,有的还差别很大,容易造成误导,所以我选择从简出发,选择普通模式,虽然有一定的风险。当把index.php对应的前台代码修改完毕之后,发现前台基本正常,可是后台仍然出现重定向的问题。折腾了半天之后,我才想到看一下日志文件,原来是编辑器的问题,看来日志文件真的很重要,以前一直不重视。在config.php文件的第一行出现了输出.在sublime下,一般会为UTF-8文件添加BOM头,这个BOM头在window下通常是看不见的,可以通过其他的编辑器查看到,Linux下也可以直接看到,通常显示出来是一个乱码字符,把这个字符删除即可,或者简单一点,直接在第一行回车,再删除就可以了。到这里,后台基本可以访问了。

④ 怎么定义nginx上传的文件名

通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题:用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中是无法记录到访问的.一般上传大文件流程:首先修…

⑤ nginx中的“pid”是什么

刚安装的时候就是没有,其实在启动 nginx 时自动生成的 里面存放的是 当前 nginx 住进程的 ID 号;所以在配置文件中指定pidpid /usr/local/webserver/nginx/nginx.pid;哇这个事情 搞了我好长时间,我以为我装的用问题;nginx的结束重启一般是通过下面命令来实现的:kill -QUIT 26000其中26000是nginx的主进程号。每次都需要通过ps命令来查询nginx的主进程号,非常麻烦。 在《实战nginx:取代Apache的高性能Web服务器》一书中提到了使用pid文件的方法,不巧的是给的命令漏了些东西,这里给出完整的指令。pid文件就是一个纯文本文件,里面记录的是进程的pid号。下面是一个pid文件的内容::26032nginx的默认pid文件nginx使用了pid文件来记录master process的pid号,如果编译时没有指定,那它的路径就是:<prefix/logs/nginx.pid其中<prefix是nginx的安装路径。如果你想修改默认的pid文件路径,可以在编译时加入配置。参数如下::./configure –-pid-path=/data/test/ngx.pid指定后,默认的pid文件路径就更改为::/data/test/ngx.pid如果指定只是路径,没有pid的文件名,那么pid的文件名还是nginx.pid通过配置文件修改pid除了使用默认值和通过编译时修改外,还可以通过在nginx的配置文件中修改。如下:pid /data/test/nginx.pid;这里修改的值只对使用该配置文件的nginx有效。用PID文件停止Nginx假设pid文件路径为/data/logs/nginx.pidkill –QUIT `cat /data/logs/nginx.pid`用pid文件重新加载配置文件

⑥ nginx如何支持中文目录名和文件名拜托各位了 3Q

参考这里 http://blog.csdn.net/five824/article/details/48261213

⑦ 如何让Nginx支持中文文件名

首先得让你的系统有中语语言包:设置前可以执行:locale 看一下,如果显示是en_US.UTF-8,即是正常,不用按下面的步骤设置。如果显示其他编码需要按如下步骤设置。CentOS编辑/etc/sysconfig/i18n 文件,内容修改为:(可以使用vi、nano或winscp图形管理软件,依个人口味选择)LANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16"保存,重启系统。Debianapt-get install -y localesdpkg-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,如果报错,请在本文反馈。按以上步骤设置好后即可支持中文,可以上传中文的文件或中文的目录。在nginx.conf文件里配置的字符集也是utf-8server {listen 80;server_name test.cn;root /data;index index.html index.jsp;charset utf-8;……ay%PM'G+U0客户端用的是secureCRT,用的字符集改为utf-8,用uft-8后再用rz上传文件,在ie下中文可以正常显示了。

⑧ 编译安装nginx的配置文件的路径在哪

这个版本不同,位置还是不同的。我的是nginx-1.9.9版本源码安装,配置文件在conf这个目录里面:/usr/local/nginx/conf/nginx.conf如果回你找不见也可以搜答索:find / | grep nginx.conf

⑨ 请问nginx不能支持中文文件名吗

如果显示其他编码需要按如下步骤设置。 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,如果报错,请在本文反馈。按以上步骤设置好后即可支持中文,可以上传中文的文件或中文的目录。 在nginx.conf文件里配置的字符集也是utf-8 server { listen 80; server_name test.cn; root /data; index index.html index.jsp; charset utf-8; …… ay%PM'G+U0 客户端用的是secureCRT,用的字符集改为utf-8,用uft-8后再用rz上传文件,在ie下中文可以正常显示了。 注意: 如果中文文件名是gb2312的需要转换成utf-8.(注是文件名,不是文件内容)。使用convmv转换,(如果找不到这个命令,光盘中有这个包 convmv-1.10-1.el5.noarch.rpm)convmv -fGBK -tUTF8 -r–notesttarget 其中-f是源编码,-t是目标编码,-r是递归处理目录,–notest是不移动,实际上对文件进行改名(actually do rename the files),target是目标目录。其余参数可以参考man或者-h。

未经允许不得转载:山九号 » nginx文件名|nginx下中文文件名问题有一劳永逸的解决办法吗

赞 (0)