Articles of nginx

最佳实践:每个服务器运行一个应用程序的多个Nginx-Passsenger独立服务器的RVM

我想知道什么是最好的方法来托pipe多个Rails应用程序,其中每个应用程序有不同的gemset,并可能使用不同版本的Ruby。 我正在考虑运行RVM来为每个应用程序pipe理不同的gemset,并让每个应用程序在其独立的乘客独立实例上运行。 我唯一关心的是这种方法是让多台独立运行的服务器运行,而不是只有一台服务器。 无论如何,我对这个东西都很陌生,所以我愿意提供一些关于这种设置的最佳实践的build议。 我也读过这个博客文章 ,我想知道人们对它的看法。 这听起来像一个合理的设置,并告诉我的强迫症保持干净和应用程序之间的分开。

Nginx相当于lighttpd“evhost.path-pattern”

我正在为我的个人资料build立一个新的服务器。 在旧的盒子里,我用了近两年的lighttpd。 我已经读了一些,大多数人倾向于转向nginx,因为它的开发更为活跃。 现在我对nginx的威力感到有点不知所措了。 我使用的最酷的事情是“evhost.path-pattern”function,我可以简单地使用或多或less的复杂正则expression式来委托所有域和子域,并定义“evhost.path-pattern =”/ var / www / pages /%0 / subdomains /%3 /“,所以我只需要在”子域名“中创build一个新的文件夹,同样的秒钟,我有一个工作的WebDIR上传东西,新的子域名(或新的域名)。 Nginx有这样的构造: server { server_name ~^(www\.)?(?<domain>.+)$; location / { root /sites/$domain; } } 但现在我有问题寻找一个适当的正则expression式来覆盖域和子域的同时(轻描淡写我已经做了这个RegEx已经赶上了域名,否定了子域名)。 我希望主域名(有和没有“www”)去/ var / www /页// htdocs /和所有子域需要去/ var / www /页/ /子域//。 任何帮助吗?

单页的nginx服务器位置

我只想为单个页面设置一个位置: /showthread.php?t=2589&page=3 (和其他页面1,2) 我正在写configuration: location ~* ^.+showthread\.php\?t=2589.+$ { 这个在线testing人员说,string匹配: http : //regexr.com?30bk3但实际上并没有。 WTF? nginx使用“特殊”的正则expression式还是什么? 如何使正确的expression?

Nginx反向代理+ SYN Flood

我们正在运行一个nginx反向代理集群,将stream量转发到我们的主网站,这使我们能够过滤掉不需要的stream量/用户等,并把它们从其他地方发送出去,现在我们遇到一些SYN洪泛的问题,正在溢出代理+主服务器导致他们变得不可用。 是否有任何IP表魔术可以A)速率限制SYN数据包/ HTTP连接B)如果封包一秒钟是恶意的 或任何build议如何在nginx中使用limit_rate_zone,我GOOGLE了,并试图应用一些新的结果,没有一个工作,网站仍然不可用。

显示文件列表和不运行应用程序的Rails

我遵循这个教程: http : //railsapps.github.com/tutorial-rails-mongoid-devise.html 在端口8000上通过代理运行nginx。你可以在这里看到它。 为什么在/ public目录中列出文件? 另外,如果我尝试去任何deviseuris,它显示Nginx的404,而不是铁轨404 …这可能是一个乘客的问题? 我是新的服务器pipe理员/铁轨。 所以这可能是一个nginx的问题OR栏configuration。 任何build议的铁轨学生/僵尸? 我的部分问题是,我不太了解错误日志。 如何检查nginx / apache / rails日志的错误?

nginx:我怎样才能设置proxy_ *指令只为匹配的URI?

我已经在这个几个小时了,我找不出一个干净的解决scheme。 基本上,我有一个nginx的代理设置,这工作得很好,但我想手动处理几个url。 具体来说,有2-3个位置,我想设置proxy_ignore_headers Set-Cookie来强制nginxcaching它们(nginx不caching响应与Set-Cookie按http://wiki.nginx.org/ HttpProxyModule#proxy_ignore_headers )。 所以对于这些位置,我想要做的就是设置proxy_ignore_headers Set-Cookie; 我已经尝试了所有我能想到的设置和复制每个configuration值之外的任何东西,但没有任何工作。 我试过了: 嵌套的位置指令,希望与我的文件相匹配的内部位置只是设置这个值,并inheritance其余的,但事实并非如此 – 它似乎忽略任何设置在外部位置,最值得注意的是proxy_pass和我最终404)。 在$ request_uri匹配的if块中指定proxy_cache_valid指令,但是nginx抱怨不允许(这里不允许使用“ proxy_cache_valid ”指令)。 在if块中指定一个等于“Set-Cookie”的variables,然后尝试将proxy_cache_valid设置为该variables,但是nginx不允许这种情况下的variables并抛出。 它应该是如此简单 – 修改/附加一个指令的一些请求,但我还没有能够让nginx做到这一点。 我在这里错过了什么? 是否至less有一种方法来包装可重复使用的块中的通用指令,并添加自己的唯一位后,有多个位置块引用它? 谢谢。 仅供参考,主要位置/块包含在下面,以及针对特定URI的失败的proxy_ignore_headers指令。 location / { # Setup var defaults set $no_cache ""; # If non GET/HEAD, don't cache & mark user as uncacheable for 1 second via cookie if ($request_method !~ ^(GET|HEAD)$) […]

我如何设置我的本地Nginx服务器,以便我可以编辑这些文件?

我有我的本地开发机器运行Arch Linux,Nginx,PHP-FPM和MySQL。 为了使我正在运行的网站需要由http用户拥有。 这些文件目前位于如下所示的文件夹中: /srv/http/site1/ /srv/http/site2/ 当我在http文件夹上使用下面的chown命令时,网站工作正常,但我无法用我的用户编辑文件: chown -R http.users /srv/http 当我这样做的网站不工作,但我可以编辑文件: chown -R shane.http /srv/http 我怎样才能让我的用户可以编辑这些文件,并且Web服务器可以同时运行它们? 谢谢

nginx:覆盖特定服务器的全局ssl指令

在我的configuration中,我已经在http块中放置了ssl_ *指令,并且已经使用通过自定义CAauthentication的通配符证书,没有任何问题。 但是,我现在想为新的子域(服务器)使用一个新的证书,这个证书已经被认可的CAauthentication。 假设TLD是blah.org。 我希望我的CN * .blah.org自定义证书可以用于除new.blah.org之外的所有域,它们将使用CN new.blah.org上自己的证书/密钥对文件。 怎么会这样呢? 在服务器块中添加新的ssl_ *指令似乎不会覆盖全局设置。

nginx Set-Cookie指令

使用nginx作为反向代理时,是否可以修改cookie,类似于Set-Cookie在apache中的做法? 我有一个设置会话cookie的Web应用程序,我希望在它们由nginx服务之前将HttpOnly标志附加到它们。 不幸的是,我不能修改应用程序的源代码来做到这一点。

使用nginx加速负载均衡ssl的方法?

所以我们网站的设置是4个运行rails3和nginx1的节点,都使用相同的GoDaddy证书。 由于我们是付费网站,因此我们必须保持PCI-DSS合规性,因此必须使用更昂贵的SSL密码 – 我们也使用Rack强制SSL。 我最近切换到了Linode的NodeBalancer(我读过的是一个HACluster),我们没有得到理想的性能。 从我读到的,它看起来像使用高密码在节点上终止SSL是什么造成了糟糕的性能,但我想要彻底。 有什么我可以做的吗? 我已经读过关于在NodeBalancer之前终止SSL的其他方法(比如使用stud),但我对这些解决scheme还不够了解。 我们当然不想做任何实验或任何有单点失败的事情。 如果真的没有什么能够加速SSL握手的话,我的select是使用安全和不安全的子域来支持Rails上的某些页面。 我已经find了一些指南,但我的结果是在这种情况下,让nginx句柄在安全子域而不是rails上强制使用ssl会更好吗? 谢谢!