Articles of nginx

Nginx的try_files gotcha

好的 – 我一直在使用这个规则 location ~* /(?:abc12345|12abcdef)/(.*\.(jpe?g|gif|png)) { alias /usr/local/image/$1; error_page 404 /handler.php; } 如果图像文件存在,则将其提供 – 如果该文件不存在,则会自定义一个名为/handler.php的404 error_page用于传递商品。 如果图像不变,则会返回一个304 – 新的图像返回一个200.几乎完美。 问题是,返回一个404与图像是不是正确的事情 – 我应该接受请求,确定文件是否存在,如果不运行处理程序,并返回图像 – 而不是显示404。 我试图用try_filesreplaceerror_page,但没有得到所需的结果: location ~* /(?:abc12345|12abcdef)/(.*\.(jpe?g|gif|png)) { alias /usr/local/image/$1; try_files $uri $uri/ /handler.php; } 在try_files中似乎没有任何匹配,所以所有的请求都通过handler.php。 我明白,别名是一种特殊的匹配模式,但如果我尝试进入 try_files "" /handler.php; 哪个工作,但“”返回不正确的内容types(内容types:·应用程序/八位字节stream),而handler.php返回正确的(内容types:·图像/ jpeg) 当然,我可以添加“default_type image / jpeg;” 强制默认,但我运行的风险,返回一个JPEG格式的内容types时,实际图像可能是GIF或PNG。 我正在运行Debian 6 – nginx-1.0.6-1〜dotdeb.2 任何想法如何使这项工作?

通配符,用于nginx中IPv4地址的最后2个段

在nginx中,我们可以定义访问(允许/拒绝)规则如下 : allow 192.168.1.0/24; allow 10.1.1.0/1 但是,当我们想为通用IP地址的最后2个段使用通配符时, allow 192.168.0/255.0/255 这不起作用,它说这个语法是不正确的。 有什么办法做到这一点? 这是不可能的,因为两个部分意味着不同的子网或什么? 我想,对此的解释将成为未来的一个很好的资源。

Nginx:添加/启用mp4模块

有没有办法在nginx上启用这个模块? http://wiki.nginx.org/HttpMp4Module 我已经有很多在nginx上运行的域名,我不能删除它并重build所有的东西。 我尝试下载最新的nginx,并做./configure –with-http_mp4_module ,然后make install但它没有奏效。 此外,我恐怕这个重新编译过程将删除所有我的conf和域设置。

将NGINXconfiguration为使用memcache处理reverse_proxy_cache

有没有办法configurationnginx使用memcache来存储caching数据,而不是使用存储在硬盘上的文件?

指向具有特定端口的IP地址的域名

所以我有我的网站安装Nginx和gunicorn。 但是,我没有使用端口80的网站,而是我使用的端口8888.是否有可能告诉域名使用端口8888而不是80当通过mydomain.net连接? 目前我将不得不连接到mydomain.net:8888 。 如果不能在域名端完成,可以用nginx来完成吗?

通过Web服务器或PHP发送HTTP头?

也可以通过networking服务器或脚本发送HTTP头。 我在Nginx上使用PHP。 有什么不同的发送HTTP标头(如caching控制)通过Nginx或PHP? 通过networking服务器发送标题是否更快? 它是否对早期处理HTTP请求有影响?

nginx和php5-fpm init.d启动脚本都不起作用,并且不返回错误。 但他们曾经完美地工作

我一直在Ubuntu盒子上使用nginx和php5-fpm一段时间。 一切都已经正确configuration和设置,它像一个魅力跑。 我一直保持包更新和升级像往常一样,但没有触及nginx或php5-fpmconfiguration文件(因此我敢肯定,这不是我的错…) 基本上,我注意到nginx没有运行,因为它应该是。 我运行命令sudo service nginx start ,脚本什么都没做。 尝试做任何事情时都会发生同样的事情 – start , stop , restart或reload 。 这也发生在“php5-fpm”初始化脚本中,尽pipe所有其他的init脚本似乎正常工作。 当试图启动nginx或php5-fpm时,会发生什么情况: root@HAL:/etc# service php5-fpm start root@HAL:/etc# 我不明白发生了什么事。 该脚本不会返回错误,但同样不会像往常一样启动守护进程或报告成功。 作为参考,这两个安装来自官方的nginx和php5-fpm PPA。 同时开始这样做的事实引发了我 – 因为它们都是无关的包。 我已经使用apt-get purge …从我的系统中清除了两套软件包apt-get purge …还有apt-get remove –purge …两者都成功删除了软件包,它们的configuration文件和它们的init.d启动脚本。 在重新安装nginx后,我现在又有了一个正常运行的启动脚本 – 我可以照常启动web服务器。 但是,php5-fpm仍然遇到了启动脚本的奇怪的过早退出..我真的不知道是什么原因造成的。 我不知道是什么造成了这种情况最初发生,但已经设法修复nginx。 我现在需要修复php5-fpm启动脚本。 如果有人能够看到这种情况,我将非常感激! 这两个问题的可能性都是相关的 – 而这些问题是由我做了一些愚蠢的事情造成的。 但现在我需要修复它。 这次我很幸运 – 因为这些问题都在我的开发服务器上。 但是我有另外两台configuration类似的服务器,我担心同样的事情也会发生在这两台服务器上。 有其他人遇到这个? […]

Perl在CentOS上安装nginx时缺less

我试图在我的服务器上安装nginx,但它不断返回“./configure:错误:perl 5.6.1或更高是必需的”事件我有perl v5.8.8 !!!! 我已经下载perl并尝试使用以下命令configuration它: ./configure –with-http_stub_status_module –with-http_perl_module –with-http_flv_module –add-module=nginx_mod_h264_streaming 这里是输出: [root@fst nginx-0.8.55]# ./configure –with-http_stub_status_module –with-http_perl_module –with-http_flv_module –add-module=nginx_mod_h264_streaming checking for OS + Linux 2.6.18-308.el5 x86_64 checking for C compiler … found + using GNU C compiler + gcc version: 4.1.2 20080704 (Red Hat 4.1.2-52) checking for gcc -pipe switch … found checking for gcc builtin […]

浏览器cachingredirecturl。 我怎样才能防止它被caching?

我正在使用nginx重写一个url rewrite ^/old$ /new1 permanent; 我需要每隔几天将/ oldredirect到(/ new1)的地址。 我注意到,当我更改/ new1 url到/ new2并重新启动nginx,浏览器仍然redirect到/ new1直到我清除浏览器caching。 如何防止浏览器cachingredirecturl? PS我需要不断更改url的原因是,我在其中一个网站上设置了一个横幅,为了不打扰网站所有者一直使用新的url,我虽然给他一个地址使用并不断改变我的redirect。

远程日志logging – Nginx的Rsyslog或任何其他的select

我需要设置Auto Scaling实例的集中式远程访问logging。 目前我有Rsyslog / Apache2日志工作正常,但对于新项目Nginx的使用,我没有看到任何可能性直接login到TCP / UDP。 Rsyslog可以configuration为远程读取本地文件的数据,但我的目标是避免本地写入。 有人可以分享有关如何configurationNginx通过networking而不是本地FS发送消息的知识吗? 或者,也许我可能需要configuration日志旋转到SCP文件?