Articles of nginx

我可以使用什么正则expression式来标识nginx日志中的无效文件请求?

我需要帮助为fail2banconfiguration正则expression式。 我使用我的networking服务器主要用于简单的播客文件托pipe,但我看到很多无效的请求在日志中的PHP,ASP和PL文件。 我想configurationfail2ban在日志中查找这些types的无效文件请求。 有一点,我有以下正则expression式string设置为Apache: [[] client []](没有这样的文件或目录脚本未find或无法统计):/\S*(php|mysql|.asp|.exe|.pl) [[] client []] script'/\S*(.php|.asp|.exe|.pl)\S*'not found or unable to stat * $ 这显然不适用于nginx日志。 这是一个不良文件请求的摘录(我改变了path和IP): 2011/05/14 20:38:20 [error] 5349#0:* 828 open()“/example/path/htdocs/administrator.php”failed(2:No such file or directory),client:123.123.123.123 ,server:example.server.com,请求:“GET administrator.php HTTP / 1.1”,主机:“example.server.com” 我可以得到一些帮助制定修正正则expression式string来捕捉这些types的错误? 我想重申,我不主持任何PHP或ASP文件,所以我不太在意这里可能的误报风险。

nginx如果指令从0.7升级到1.0.2后停止工作

我将我的nginx服务器从0.7.x升级到1.0.2,并且复制了新的nginx服务器的旧configuration文件。 一切工作正常,除了if-指令。 我在旧的configuration文件中有以下的代码块,似乎没有与最新的nginx版本。 location /myapp { if (!-e $request_filename) { rewrite ^/myapp/(.*)$ /myapp/index.php?q=$1 last; break; } root /var/www; index index.php index.html index.htm; } 任何想法有什么不对? PS:是的,我知道IfIsEvil和我尝试探索try_files,但我无法弄清楚如何传递只有部分的URI后myapp /作为传递inputURI到index.php像这样: try_files $uri index.php?q=$uri

用nginx从S3服务静态网站

我知道,S3可以提供一个简单的index.html文件,如果它在一个存储桶的根目录下,但是我的需要是提供很多简单的静态站点,S3每个账户有100个桶的限制,所以我必须使用nginx和一些子目录(如http://foo.bar.com/test/index.html ,桶总是foo.bar.com,我使用指向foo.bar.com的CNAME映射到域bar.com上.s3.amazonaws.com)。 这些静态网站应该可以从subdomain.bar.com访问,并直接提供index.html文件。 这是我的nginx conf: server { listen 80; ## listen for ipv4 listen [::]:80 default ipv6only=on; ## listen for ipv6 server_name *.bar.com; set $subdomain ""; if ($host ~* "^(.+)\.bar\.com$") { set $subdomain $1; rewrite ^(.*)$ /$subdomain/index.html last; break; } location / { proxy_pass http://foo.bar.com/; } } 我几乎在那里:)现在发生什么是index.html文件被下载:我检查curl和内容types是八位字节/ strem。 我试图覆盖头文本/ HTML和成功,但我不断下载文件。 我相信我的错误是硬编码index.html,我给的索引指令是完全多余的,我不能使它工作。 我想要nginx做的是接收test.bar.com,并提供(不下载)位于http://foo.bar.com.s3.amazonaws.com/test/index.html 有人能帮我吗? TIA

Apache2 + mod_proxy =服务器定期死机

我使用mod_proxy运行apache2,将某些请求转发到在同一台机器上运行的nginx服务器。 Occasioanaly Apache服务器将一直停止响应,直到重新启动。 检查httpd.log显示每秒或2秒发生的以下行: 指定的超时已过期:proxy:从远程服务器读取状态行时的错误localhost proxy:从远程服务器读取错误读取/ 我search谷歌的答案,但没有发现任何明确的,除了人们提到mod_proxy作为原因。 有没有人有线索在哪里看,甚至如何解决? 谢谢,J

nginx XSendFile和权限

我是一个Linux新手。 我有一个PHP脚本,基于几个参数的正确性,决定是否向用户提供文件。 我通过nginx中的XSendFilefunction来提供文件。 我想阻止直接访问文件,以便用户被迫通过PHP脚本下载。 我的问题是,如果我将文件权限设置为640,当我尝试直接下载时,我得到一个403 Forbidden,但我无法下载与脚本以及。 而如果我把它设置为644,我能够做到这两件事情(我认为需要添加执行权限,以便直接下载文件。我错了吗?)我应该如何设置权限,以实现我所需要的? 编辑:请注意,我无法移动Web根目录上的文件,因为有些文件必须有直接访问权限,而其他文件则不能。 所以我必须把它们放在同一个目录下,并且能够有select地启用/禁用直接下载。

如何在Mac OS X上运行Nginx和PHP?

我在Mac OS X 10.6上安装了PHP 5.3.6 ,但是如何用Nginx而不是Apache来运行它? 以前我用Apache与MAMP ,但我想切换到nginx 。 如何在Mac OS X上使用PHP安装Nginx?

用NGINX卸载木偶,403禁止错误

我目前正试图卸载一些文件服务木偶使用NGINX(如显示在这里http://www.masterzen.fr/2010/03/21/more-puppet-offloading/ ),但是我一直有403错误在文件和目录检索。 有一件事解决了这个问题,在我的auth.conf中的第一个定义中添加了“auth any”,但据我所知,将完全禁用客户端validation? 那么我是不是通过NGINX传递所有需要的头文件还是有其他的错误? configuration文件如下。 /etc/puppet/puppet.conf [main] logdir = /var/log/puppet rundir = /var/run/puppet ssldir = $vardir/ssl server = Puppet.xServ pluginsync=false external_nodes = /usr/sbin/external_nodes node_terminus = exec [master] certname = puppet.xserv [agent] classfile = $vardir/classes.txt localconfig = $vardir/localconfig /etc/puppet/auth.conf path ~ ^/catalog/([^/]+)$ method find allow localhost allow $1 path /certificate_revocation_list/ca method find allow * path […]

使用Nginx作为dynamic网站(PHP,MongoDB)的唯一Web服务器有什么缺点吗?

我正在开发一个将与Amazon EC2一起托pipe的新项目。 请求速度至关重要,而Nginx的低内存占用非常有吸引力。 我一直使用Apache,但如果Nginx的重大优势,我想切换到。 我发现很多人使用Apache + Nginx,但是到2011年为止,使用Nginx和PHP-FPM来提供静态和dynamic内容都有什么缺点吗? 我知道.htaccess不再是Nginx的一个选项,但我也明白,有办法解决这个问题。 基本上,你会从Apache + Nginx或Nginx中获得最佳性能吗?

Nginx的,如何设置fastcgi_index为几个值?

我在Linux上使用nginx webserver作为域“example.com”。 我通过fastcgi将所有内容转发到fastcgi-mono-server4。 现在,一切正常,我只想设置几个索引页面,例如: fastcgi_index Default.aspx default.aspx index.html index.htm; 但不知何故,它不接受多个值。 我怎样才能做到这一点 ? 有没有可能? 我也尝试逗号和分号作为分隔符,但没有任何作品… 这里的虚拟主机条目在“站点可用”中的位置条目: location / { root /home/webpages/www/example.com; index index.html index.htm default.aspx Default.aspx; fastcgi_index Default.aspx; fastcgi_pass 127.0.0.1:9000; include /etc/nginx/fastcgi_params; }

htaccess到nginx(nginx下的水印图片)

我最近安装了NGINX作为我的apache服务器的反向代理来处理静态文件。 到目前为止,一切正常,除了事实上我不能再为我的图像加水印了。 Apache的.htaccess是这样的: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] RewriteRule ^(.*)wp-content/upload/(.*\.(jpg|JPG|jpeg|png))$ $1watermark.php?src=wp-content/upload/$2 </IfModule> 这是我目前的虚拟主机nginx.conf(这是不工作的水印): server { listen 80; server_name mydomain.com www.mydomain.com ; error_log /var/www/vhosts/mydomain.com/statistics/logs/error_log.nginx warn; location / { proxy_pass http://www.mydomain.com:8080$request_uri; include /etc/nginx/proxy.conf; } location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|ico|swf)$ { root /var/www/vhosts/mydomain.com/httpdocs; expires 7d; } #This here, isnt […]