我正在设置一个nginx堆栈并在上线之前优化configuration。 运行ab来压力testing机器,我很失望,看到事情以每秒150个请求的速度出现,大量的请求返回时间大于1秒。 奇怪的是,机器本身甚至没有呼吸困难。 我终于想到要ping盒子,在100-125ms左右看到ping时间。 (这台机器,令我惊讶的是,在全国各地)。 所以,networking延迟似乎是主宰我的testing。 从与服务器相同的networking上的一台机器运行相同的testing(ping时间<1ms),我看到>每秒5000个请求,这更符合我对机器的期望。 但是这让我思考: 如何确定和报告Web服务器每秒请求的“现实”度量? 你总是看到关于性能的声明,但不应该考虑networking延迟? 当然,我可以每秒向服务器旁边的一台机器发送5000个请求,但不能到达全国各地的一台机器。 如果我的连接速度很慢,它们最终会影响我的服务器的性能,对不对? 还是我想这个全错了? 原谅我,如果这是networking工程101的东西。 我是一个贸易开发商。 更新:为清晰起见进行了编辑。
我想在AWS中设置自动缩放。 我不想使用Elastic Load Balancer。 亚马逊的自动调节function可以在需求高峰期间无缝地创buildEC2实例以保持性能,并在需求停滞期间自动降低以最大限度地降低成本。 由于这个EC2实例是自动创build的,所以它们的主机名对于NGINX是未知的。 我知道,已经在nginx中有10个EC2实例的上游设置。 我希望能够在自动调节添加/更新/删除EC2实例时,自动添加/更新/删除服务器名称到我的上游nginxconfiguration。
我已经读了很多有关在Apache上运行NGINX来提供静态文件的主要好处。 不过,我从来没有看过一篇文章谈论Apache与NGINX提供PHP页面。 问题:在提供PHP页面,Apache或NGINX时速度更快?
我试图configuration一个Nginx服务器,通过一个UNIX域套接字连接到一个Node.js HTTP服务器。 Nginxconfiguration文件: server { listen 80; location / { proxy_pass http://unix:/tmp/app.socket:/; } } (根据http://wiki.nginx.org/HttpProxyModule#proxy_pass ) Node.js脚本: var http = require('http'); http.createServer(function(req, res) { console.log('received request'); req.end('received request\n'); }).listen('/tmp/app.socket'); 现在,当我尝试打电话 curl http://localhost/ 我只有curl中的502 Bad Gateway错误页面,Node.js进程没有任何内容。 我做错了什么? 编辑: 在尝试了quanta的解决scheme后,错误必须与Nginxconfiguration有关,因为Node.js进程正确地build立了与套接字的连接。 我也尝试过这样configurationNginx: upstream myapp { server unix:/tmp/app.socket; } server { listen 80; location / { proxy_pass http://myapp; } […]
我们目前的堆栈是Apache + Tomcat + MySQL,使用ProxyPass AJP从Apache向Tomcat发起请求。 我们也在相同的网站上运行PHP for WordPress,因此需要工作.htaccess文件。 为了回应一个烦人的问题(请参阅此堆栈溢出页面) ,我们正在考虑替代堆栈。 请注意,我们通常非常喜欢apache,但这个问题是一个阻碍:如果我们无法修复它,我们就不能使用Apache。 替代scheme包括: 单独的Tomcat Glassfish(Java应用服务器,来自Tomcat) Jetty(Java服务器) 树脂 LightTPD(轻量级HTTP服务器) Nginx(轻量级HTTP服务器) 我看到它的方式,解决scheme分为两个阵营:纯粹的Java阵营,如Glassfish; 或者像我们目前的Apache + Tomcat这样的分裂阵营。 我们喜欢纯Java解决scheme的概念,因为更less的移动部件应该意味着更less的出错; 但他们中的任何一个都支持PHP, .htaccess文件等? 从理论上讲,我们可以用另一种方式进行拆分 – 只需要那些需要这些特性的代理,就可以有一个简单的前端代理Apache,但实际上这只是80%的请求。 人们build议什么select?
我的iOS应用程序正在通过http POST访问域A,但是我想将所有请求转发到域B. 如果我使用通常的rewrite ^/(.*)$ http://mydomain/$1 permanent; POST数据似乎会丢失。 如何使用NginX将HTTP POST数据传递到不同的域?
我想限制某些VHost的访问权限,以便只有127.0.0.1才能访问它。 我总是用这样的东西来绑定VHost到本地主机而不是外部IP: server { listen 127.0.0.1; server_name myvhost.local; location / { …. } } 但是我注意到一些教程还包含了localhost的显式allow指令,并且明确地否认所有其他指令: server { listen 127.0.0.1; server_name myvhost.local; location / { allow 127.0.0.1; deny all; … } } 这些allow / deny指令真的需要时,我只听127.0.0.1?
我正在调整我的主页的性能,目前它处理大约200个请求/秒3.14.by其中的3个SQL查询,并在3.14.by /论坛这是phpBB论坛20个请求/秒。 奇怪的是,在一些VPS和专用的Atom 330服务器上,数字大致相同。 服务器软件如下:Apache2 + mod_php prefork 4个孩子(在这里尝试了不同的数字),php5,APC,nginx,memcached用于PHP会话存储。 MySQL被configuration为可用RAM的大约30%(VPS上约150Mb,专用服务器上约700Mb) 这看起来像是有一个瓶颈,不允许我走高,有什么build议吗? (即,我知道less于6个SQL会使速度更快,但这看起来不是一个限制因素,因为由于caching查询,sqld最多不超过百分之几) 有没有人testing踢预先apache2和离开只是nginx + PHP是更快? 一些更多的基准 Small 40-byte static file: 1484 r/s via nginx+apache2, 2452 if we talk to apache2 directly. Small "Hello world" php script: 458 r/s via ngin+apache2. 更新:看起来瓶颈是MySQLcaching数据的性能。 具有单个SQL的页面显示为354req /秒,具有6个SQL – 180 req / sec。 你觉得我可以在这里调整什么? (我可以为MySQL分出100-200Mb) [client] port = 3306 socket […]
我试图设置nginx来运行我的一个rails应用程序,当看看ps -e | grep nginx输出时 ps -e | grep nginx ,我意识到nginx工作进程与用户nobody运行。 有没有原因,他们没有运行www数据?
它看起来像nginx 0.8.35可能支持分块传输编码 : nginx 0.8.35的更改2010年4月1日 *) Change: now the charset filter runs before the SSI filter. *) Feature: the "chunked_transfer_encoding" directive. 这真是太好了,因为我试图通过一个nginx反向代理将git变更推送到git-http-backend进程。 Git HTTP 为了客户端效率的原因,利用了分块传输编码。 但是,我不能得到它的工作。 我在Debian Lenny上使用nginx 0.8.44进行以下configuration调用: ./configure \ –sbin-path=/usr/sbin \ –conf-path=/etc/nginx/nginx.conf \ –error-log-path=/var/log/nginx/error.log \ –http-log-path=/var/log/nginx/access.log \ –user=www-data \ –group=www-data \ –pid-path=/var/run/nginx.pid \ –lock-path=/var/lock/nginx.lock \ –with-http_ssl_module \ –with-http_gzip_static_module \ –with-http_realip_module 和下面的conf文件: server { […]