Articles of nginx

与nginx,两名工人和1024连接abtesting失败?

我正在使用我的开发机器上的nginx 1.4.1和Node.js 0.10.5进行一些testing(运行Xubuntu x64的P8700双核2.53Ghz,4Gb RAM)。 不幸的是,我不能用并发数为1000的100000个请求来完成请求。在总数的一小部分之后,我得到这个错误: apr_socket_recv:由对等方重置的连接(104) 总计17641 configuration文件似乎对我来说很好(2名工人,每个最多处理1024个连接): worker_processes 2; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream node_upstream { server 127.0.0.1:3000; server 127.0.0.1:3001; } server { listen 80; server_name localhost; location / { proxy_redirect off; proxy_pass http://node_upstream; } } } 工人在线( ps aux | grep […]

如何在“维护模式”下使用nginx提供HTML和JSON?

我有一个PHP的Web应用程序的nginxconfiguration,我想使它有一个额外的目的,我似乎无法find一个办法来实现它。 我目前的nginxconfiguration如下: 将/ /intro/*重写为非PHPdynamic“市场营销”网站的静态HTML页面 尝试加载/maintenance.html如果存在于磁盘上,只在部署期间存在) 如果/maintenance.html不存在,请通过FastCGI向PHP发送请求 最终结果是在部署过程中静态页面保持可用,后端PHP应用程序可以在部署发生时进行维护。 serverconfiguration块的重要部分如下所示: rewrite ^/$ /marketing/index.html last; rewrite ^/intro/(.*)$ /marketing/$1.html last; try_files $uri /maintenance.html @webapp; location @webapp { rewrite ^(.*)$ /index.php?url=$1 last; } include php.conf; ( php.confconfiguration处理location ~ \.php$位置,并执行所有通常的fastcgi_param设置。没有任何项目特定的,所以我没有发布该块。) 除了上述之外,我希望能够做的是当“维护模式”打开时,为标准HTTP请求提供/maintenance.html ,但在处理AJAX请求时响应一些JSON。 我发现我可以安全地返回基本内容: if ($http_x_requested_with = XMLHttpRequest) { return 503 '{"maintenance":true}'; } 但是,这显然发生在所有请求上,而不仅仅是/maintenance.html被提供的那些请求。 看来我需要一些标志,因为try_files不允许你做额外的事情取决于它select的文件或位置。 有什么办法可以将nginxconfiguration为返回HTML和JSON维护模式的详细信息? 编辑:更多的思考,也许将maintenance.html完全移出try_files将是很好的,所以它可以用503状态而不是200来提供。

PHP的SSI与NGINX

我有一个非常古老的网站,我想尝试在NGINX而不是Apache上运行。 这个网站包含许多带有零星PHP SSI的平面HTML文件,比如: <!–#include virtual="/some_file.php" –> NGINX HttpSsiModule在dynamic时如何处理这些问题? 在模块文档中,它说: The distinction between "file" and "virtual" is mostly historical. "file" is the same as "virtual" with implied "wait" option. 这并不涉及我应该如何configurationPHP执行。 使用上面的#include ,这意味着我应该设置一个匹配/some_file.php的location ,并且configuration为fastcgi到php-fpm(或其他类似的东西)?

NGINX基准

我设置了nginx,php-fpm和mysql作为web服务器。 现在我正在testing使用abconfiguration的服务器(Apache Benchmark) 我使用这个命令: ab -kc 100 -n 100 http://myserver/index.php 但结果是 Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 0 Processing: 4585 5310 284.6 5451 5497 Waiting: 4555 5305 292.7 5450 5494 Total: 4585 5310 284.6 5451 5497 任何人都知道为什么连接时间如此之大? 我只是将nginxconfiguration为nginx的默认值。

什么是正确的方式来观看和重新加载Nginx的conf?

我有两个问题: 是否有区别: nginx -s reload和pkill -HUP -F nginx.pid 什么是正确的方式来观看Nginx conf文件,并在更改后testingconf文件( nginx -t ),如果它通过重新加载Nginx。 这可以用runit或像Supervisor这样的stream程pipe理器来完成吗?

Phpmyadmin似乎不能读取configuration

我正在用phpMyAdminbuild立一个LEMP(Linux,Nginx,MySQL,PHP)服务器。 我安装并遵循各种指令,包括他们提供的create_tables脚本等(我已经validation了pma用户的存在,以及表)。 但是,当我login到phpMyAdmin我得到这2个错误: phpMyAdminconfiguration存储没有完全configuration,一些扩展function已被禁用。 找出为什么点击这里。 configuration文件现在需要一个秘密密码(blowfish_secret)。 此外,blowfish的秘密是在configuration文件中设置的,所以这使我相信,PMA不能读取configuration文件 – 但我不知道该怎么做! 已经试过摆弄权限和所有者,但没有帮助 – 虽然非常猜测,应该是哪个chmod / chown! 有任何想法吗?

ssl Ubuntu上的nginx和Windows上的nginx之间的不同行为

我在Ubuntu和Windows上都使用相同的版本(1.5.0)nginx。 两个nginx服务器在glassfish2.x之前作为反向代理工作。 glassfish2.x启用https监听器,而我的nginx服务器也有ssl证书文件。 我在Ubuntu上的nginx工作正常,但在Windows上没有。 GlassFish上的应用程序说,通过https通过nginxlogin到应用程序时,用户名和密码是错误的。 Ubuntu和Windows上两个nginx的configuration是一样的。 server { listen 443 ssl; server_name 127.0.0.1; ssl_certificate server.crt; ssl_certificate_key server.key; location / { proxy_pass https://10.112.18.110; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 我发现TLS版本与Chrome不同,Ubuntu上的nginx使用tlsv1.1和ACE_256_CBC,但windows上的nginx使用tlsv1.0和AES_128_cbc。 我不知道如何使windows上的nginx使用tlsv1.1。 如果我能做到这一点,我会再次testing他们看窗口上的nginx作品与否。

Nginx安装W /乘客,但没有命令行

我使用以下命令在Ubuntu 12.10上安装了Passenger和Nginx:passenger-install-nginx-module(在www.modrails.com/documentation/Users指导Nginx.html的指导下)。 当我遇到安装我的SSL证书的问题时,我发现像“Nginx -V”这样的命令行工具产生了以下输出:“程序'nginx'可以在以下软件包中find…” 更新:我已经成功地使用以下链接中的说明正确configurationSSL: https : //library.linode.com/web-servers/nginx/configuration/ssl 我仍然需要知道如何从命令行运行Nginx命令。 使用我安装到/etc/init.d/nginx的脚本启动和停止它没有问题。 nginx安装目录是/ opt / nginx。

防止NGINX重新路由到以前的后端

我正在使用NGINX的ip_hash指令来确保客户端请求总是在相同的后端服务器上结束。 在后端服务器中断的情况下,NGINX将重新路由到可用的服务器,由于我可以在客户端应用程序上侦听断开连接事件,所以我可以让我的客户端应用程序作出相应的反应。 但是,当以前停机的服务器恢复时,NGINX会将请求路由回原始服务器。 这打破了我的应用程序,因为我无法知道这发生在我的客户端应用程序。 那么有没有办法让NGINX发现一个通知事件到我的客户端应用程序,当它检测到一个以前的服务器可用,或者最好防止NGINX展示这种行为?

Nginx权限被拒绝tmp目录(用正确的用户)

每当我从WordPress内部提交一个很长的post,我得到以下错误: 2013/06/04 03:04:19 [crit] 12248#0: *491 open() "/var/lib/nginx/tmp/client_body/0000000008" failed (13: Permission denied) 它工作正常,如果post不是那么长,但提交一个长的一个在前端抛出500错误,这在我的错误日志文件:/ 我尝试了谷歌search,没有太大的帮助,除了改变用户或东西 现在我已经有了… /var/lib/nginx/tmp/client_body由www:www(www nginx)拥有并设置为700权限