Articles of nginx

ApacheBenchmark ab – SSL读取失败 – closures连接

当我在我的网站上运行ab时,我收到了很多回应: SSL read failed – closing connection SSL read failed – closing connection SSL read failed – closing connection 有些时候它是成功的。 我在MacBook Pro 10.7.2上。 奇怪的是,有人在一台非常类似的机器上做了相同的testing,而不是OS Lion,就在我旁边,没有任何问题。 有任何想法吗? 我确信这是我的机器上的东西,因为我得到ab在各地工作。 该命令很简单: ab -c 100 -n 1000 https://mywebsite.com 还有一件事,当我查看nginx日志时,我看到一些来自ab的请求,所以它正在工作。 而且,日志不会显示失败的日志。

我怎样才能让nginx识别其名称中有空格的目录?

我想将网站从/ var / www / WebSite移动到/ media / Backed网站/网站。 我不能让nginx识别“支持的网站”目录。 用引号试了一下,但是没有成功。 任何想法? 这甚至有可能吗?

应该从Nginxconfiguration中删除`keepalive_timeout`吗?

哪一个更好的configuration/优化:明确限制keepalive_timeout或允许Nginx自行终止keepalive连接? 我看到了两个相互矛盾的build议,关于Nginx的keepalive_timeout指令。 他们如下: # How long to allow each connection to stay idle; longer values are better # for each individual client, particularly for SSL, but means that worker # connections are tied up longer. (Default: 65) keepalive_timeout 20; 和 # You should remove keepalive_timeout from your formula. # Nginx closes keepalive connections when the […]

nginx故障切换没有负载平衡

我在configurationnginx时遇到了问题。 我使用nignx作为反向代理。 我想把我的所有请求发送到我的第一台服务器。 如果第一台服务器停机,我想发送请求到第二台服务器。 简而言之,如何在没有负载平衡的情况下拥有故障转移解决scheme?

Nginx的1.2.2:如何让try_files工作?

我最近更新了nginx到版本1.2.2,下面的条目似乎被破坏; 大概是版本之间的语法变化? location / { # First attempt to serve request as file, then # as directory, then fall back to index.html try_files $uri /index.html; } 当我浏览到http://www.mysite.com/a-non-existent-url时,我被redirect到“500内部服务器错误”错误页面。 以下是日志条目 2012/08/13 09:20:29 [error] 18457#0: *60 rewrite or internal redirection cycle while internally redirecting to "/index.html", client: 10.0.14.1, server: mysite.com, request: "GET /a-non-existent-url HTTP/1.1", host: "www.mysite.com" 这用于按预期工作,我无法find此版本的正确语法。 现在应该如何? […]

如何从nginxconfiguration$ uri中删除位置块?

我在我的ngix conf文件中有一个重写,除了它似乎包含位置块作为$ urivariables的一部分,它可以正常工作。 我只想要位置块后的path。 我目前的configuration代码是: location /cargo { try_files $uri $uri/ /cargo/index.php?_REWRITE_COMMAND=$uri&args; } 使用http://localhost/cargo/testpage的示例URLredirect工作,但是我的php文件收到的“_REWRITE_COMMAND”参数的值是“/ cargo / testpage”。 我需要去掉位置块,只需要“testing页”作为$ uri 我很确定有一个正则expression式语法分裂$ uri并将其分配给一个新的variables使用$ 1 $ 2等,但我找不到任何示例做一个variables分配使用正则expression式不是重写的一部分声明。 我一直在寻找和尝试几个小时,我似乎无法通过这最后一步。 我也知道我可以在应用程序代码中删除它,但是我想试图修复它在nginx conf中的原因是出于兼容性原因,因为它也在Apache上运行。 我也应该说,我已经想出了一个非常冒险的方法来做到这一点,但它涉及到一个“如果”的声明来检查文件的存在和文件明确表示不这样做。

node.js,mongodb,redis,关于ubuntu在生产中的性能下降,RAM是免费的,CPU 100%

正如问题标题所暗示的那样,我很难弄清楚在我的应用程序上可以改进什么(或者在os,ubuntu中进行调优)以获得可接受的性能。 但首先我要解释一下架构: 前端服务器是8核心机器,运行Ubuntu 12.04的8个内存。 该应用程序是完全用JavaScript编写的,运行在node.js v 0.8.22(因为一些模块似乎抱怨新版本的节点)我使用nginx 1.4来代理从端口80和443的httpstream量到8个受pipe理的节点工作人员并开始使用节点群集api。 我使用最新版本的socket.io 0.9.14来处理websocket连接,在这个连接上我只启用了websocket和xhr-polling作为可用的传输。 在这台机器上,我也运行一个Redis实例(2.2) 我将持久性数据(如用户和分数)存储在mongodb(3.6)上的第二台服务器上,并带有4个内存和2个内核。 这个应用程序在几个月前就开始投入使用(直到几个星期前它已经在一个盒子里运行),每天大约有18k个用户在使用它。 除了一个主要问题之外,它一直运行得非常好:性能下降。 随着使用,每个进程使用的CPU的数量增长,直到它统一工作人员(这将不再服务请求)。 我暂时解决了每分钟检查每个工作人员使用的cpu,如果达到98%,重新启动它。 所以这里的问题主要是CPU,而不是RAM。 内存不再是一个问题,因为我已经更新到socket.io 0.9.14(早期版本泄漏内存),所以我怀疑是一个内存泄漏的问题,尤其是因为现在是CPU快速增长(我必须每天重新启动每个工人10-12次!)。 在使用中的RAM也是老生常谈,但是每2-3天使用一次就很慢,奇怪的是即使我彻底重新启动整个应用程序也不会释放。 只有重新启动服务器才会被释放! 这我真的不明白… 我现在已经发现了非常棒的nodefly ,所以我终于可以看到我的生产服务器上发生了什么事情,而且我正在收集数据。 如果有人想看看我可以给你的图表,但基本上我可以看到我有80到200个并发连接! 我期待node.js处理数千个,而不是数百个请求。 另外,httpstream量的平均响应时间在500到1500毫秒之间浮动,我认为这真的是很多。 另外,在这个有1300个在线用户的时刻,这是“ss -s”的输出: Total: 5013 (kernel 5533) TCP: 8047 (estab 4788, closed 3097, orphaned 139, synrecv 0, timewait 3097/0), ports 0 Transport Total IP IPv6 * 5533 – – […]

如何告诉Nginx在服务资产之前等待几秒钟?

所以当我在本地testing应用程序中的Ajax等东西时,我经常喜欢用sleep语句在服务器端脚本中添加延迟。 它有助于模拟慢速连接等。 有没有一种方法可以直接在Nginxconfiguration文件中指定类似的延迟行为,以适应它所服务的平面HTML文件? 我知道你可以在networking层次上做类似的延迟模拟(见这里 ),但是看起来相当混乱,从来没有为我工作过。

如何configurationphp-fpm将日志logging到在nginx虚拟主机中configuration的日志文件

我用nginx和php-fpm安装了Fedora 16。 一切工作都很好。 所有日志与PHP通知,warnig错误等在/var/log/php-fpm/www-error.log。 有没有办法将php-fpmconfiguration为错误日志文件configuration为适当的日志文件错误? 所以我想logging每个虚拟主机不在一个全局文件的PHP错误。 (如在Apache和PHP)。

连接到上游时,nginx:connect()失败(111:连接被拒绝)

我一直在错误日志中看到下面的错误消息,我可以访问所有的资源,但我不确定为什么错误标记。 错误: 连接到上游的客户端:xxxx,服务器:myserver.com,请求:“GET / stories / mine HTTP / 1.1”,上游:“错误13368#0:* 449连接()失败http:// [:: 1]:5000 / stories / mine “,主机:”myserver.com“ 我的Nginxconfiguration 我将连接传递给端口5000上运行的node.js集群。看不到我会错过什么? upstream api { server localhost:5000; } server { listen 80; server_name myserver.com; root /home/user/_api; # Logging error_log /home/user/log/api.error.log notice; location / { proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host […]