Articles of nginx

nginx位置正则expression式匹配目录范围

我正在尝试设置nginx,但是我不明白如何执行以下设置: 我有一个URL http://somehost.com/foo/bar/123/xxx_xxx需要传递到不同的后端,取决于'123'匹配的范围(例如0-150 – >后端1,151-400 – >后端2,…)。 由于我几乎没有经验的正则expression式,我不知道如何做到这一点(在位置?)。 感谢您的帮助,Sascha

将htaccess规则转换为nginx

我想知道是否有人可以告诉我以下htaccess代码的nginx规则是什么。 我在网上search,但我没有find任何东西。 <FilesMatch "\.(ttf|otf|eot)$"> <IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" </IfModule> </FilesMatch>

优化Linux服务HTTP静态内容

系统可以调整什么来增强静态内容? 像增加/减lessswappines,如何最大限度的磁盘caching等…

防火墙请求认为你是另一个主机

我是一个小菜鸟,所以忍受着我。 我经常检查我的日志的乐趣,我得到了很多(数千)这些错误: http : //pastebin.com/i0iSKDCW 我有问题的服务器是一个Burst.net VPS,我想知道如果我已经分配了别人的旧IP,他们离开他们的域configuration或somesuch? 我想要做的就是使用iptables或者其他方法来拒绝所有这样的请求(主机:eciou.net),而不让它们进入Nginx(我在Nginx下运行一些缓慢的软件)。 解 正如下面的精彩人物所build议的,我只是将其添加到我的configuration文件中: server {listen [::]:80; server_name eciou.net; 位置/ {root / srv / http / static / eciou; index index.html; }} 请注意,[:]:80是因为我的服务器也设置为接受IPv6。 通常我相信只有80人会这样做。

如何使nginx重新映射URL的一部分而不发送redirect?

我在路上看到这样的照片: /0/1/2/3/4/01234/screenshots/1.jpg 访问它的URL如下所示: /static/0/1/2/3/4/01234/screenshots/1.jpg 我想看起来像这样: /0/1/2/3/4/01234/a-desc-of-the-picture/screenshots/1.jpg 或类似的东西。 目标是在SEO中的关键字。 但是想告诉nginx服务 /0/1/2/3/4/01234/screenshots/1.jpg 当他看到: /0/1/2/3/4/01234/a-desc-of-the-picture/screenshots/1.jpg 我不希望它将用户redirect到正确的URL,我只是希望它在内部做映射。 可能吗 ? 我怎样才能做到这一点? 我在这里看到类似的东西 ,但是我找不到适用于我的案例的方法。 一些友好的小吃将不胜感激。

强制下载几千字节的zip文件

我试图开始强制下载包含大量图像的zip文件。 我使用PHP来强制下载,它在nginx上运行。 奇怪的是,当我使用wget下载它通常工作的文件,但是当我尝试使用浏览器下载它时,文件最终变成了几千字节。 我已经尝试了多个文件大小相似的结果。 我不认为这是一个超时错误,因为我玩的放缓下载速度,它总是停在同一个地方(在该特定的文件)。 我不知道为什么它会在wget上工作,而不是浏览器。 我已经在多台计算机(不同的浏览器)和多个networking上尝试过,得到了相同的结果。 我已经玩弄了PHP代码,提供的文件和php.ini和nginx设置无济于事。 我真的很感谢任何人的帮助或build议,这真的会帮助我! 这是我强迫下载的PHP代码: ob_end_flush(); header('Content-Description: File Transfer'); header('Content-Type: application/zip'); header('Content-Disposition: attachment; filename="'.$name.'.zip"'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($archive)); flush(); readfile($archive); 其中$ archive是用户尝试下载的zip文件的path。

Nginx重写问题

我的目标是/foobar?key=123请求应该redirect到/download/foobar.html?key=123 。 我目前使用下面的代码来完成这个: location /foobar { rewrite ^/foobar(.*)$ /download/foobar.html$1 permanent; } 这样做的窍门,但我们有一些老代码也调用/FooBar?key=123和/Foobar?key=123忽略了重写规则。 我怎样才能让这些重写呢? 可以用: location ~* ^/foobar { rewrite ^ /download/foobar.html$1 permanent; } 但这是不是有点松散的规则?

重写一个查询string部分作为path部分使用nginx?

如何重写表单的URI /one/two?path=three&foo=bar 至 /one/two/three?foo=bar 使用nginx?

最好的Web服务器的SSL处理?

什么是最好的Web服务器来处理SSL连接? 我们80%的连接都是SSL,所以我们需要select合适的networking服务器。 我们倾向于nginx,但不知道它如何处理SSL。

保护Nginx代理

我使用Nginx作为Java Web服务的代理。 我的configuration如下所示: location /webservice { proxy_read_timeout 240; proxy_connect_timeout 240; proxy_pass http://127.0.0.1:8080/; } 在我的日志中,我看到很多这样的条目: xx.xx.xx.xx – – [18/Oct/2011:02:44:23 +0000] "GET http://l04.member.in2.yahoo.com/config/[email protected]&passwd=password HTTP/1.0" 200 9 "-" "Mozilla/4.0 (compatible; MSIE 5.0; Series60/2.8 Nokia6630/4.06.0 Profile/MIDP-2.0 Configuration/CLDC-1.1)" 我已经做了一些testing,据我可以看到我的代理不转发请求到外部网站, 但我想要阻止这些请求所有在一起和/或返回200以外的状态代码。 我已经这样做了: if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } 阻止CONNECT尝试。 任何想法(超越IP阻止)将不胜感激。