我试图比较一下使用Siege的Web服务器的性能。 虽然所有其他服务器的结果都很容易理解,但我很难理解为Nginx返回的数字 我很天真地认为 交易=成功+失败 这确实是这样的,但只有当我从Siege获取服务器上的一个静态资源(一个图像)的时候。 当我得到它的结果运行一个PHP脚本(这是一些CPU密集型计算)我得到的更像是如下所示 我围攻不报告任何丢失或失败的套接字连接。 我会非常感谢任何可以解释明显差异的原因的人。
我有一台运行Docker + NodeJS应用程序的服务器和一台运行nginx的负载平衡器。 在升级到两台服务器之前,我想尝试复制负载均衡器和现有服务器的stream量统计信息。 (这两款机器在Digital Ocean都是5美元) 当我直接在服务器上运行loader.io时,我留下了深刻的印象,那就是每秒可以支持2000个请求,进行1分钟的testing。 但是,当我使用loader.io对nginx,代理到另一台服务器,它简单地放弃了每秒约300个请求。 由于一台机器似乎能够处理负载,我不确定问题是什么。 我会认为这是我的nginx.conf,但我可以使用一些指针来优化它。 nginx.conf: http : //pastebin.com/MkX8P4eh
我使用Nginx来负载均衡在多个Node.js实例中运行的websocket应用程序。 当有成千上万的活动连接时,单个消息广播可以使节点在几秒钟内旋转。 在此期间,Node不会处理传入的连接。 即使在服务器负载很重的情况下,为了保持响应的外观,我希望有一个备用的进程,只有在别人没有足够快的响应时才能使用。 我认为将一个Node实例标记为“备份”将起作用: upstream nodejs_backends { least_conn; server 127.0.0.1:5001; server 127.0.0.1:5002; server 127.0.0.1:5003; server 127.0.0.1:5004; server 127.0.0.1:5005; server 127.0.0.1:5006; server 127.0.0.1:5007; server 127.0.0.1:5008 backup; } 备份实例很less接收请求。 看起来像Nginx正在一个一个的通过上游服务器。 备份服务器只有在所有其他服务器都尝试过的情况下才能到达。 由于使用的是least_conn,所以它们会比第一个更加蜂拥而至。 Nginx应该放弃最初尝试并使用备份服务器。 但我不知道如何使它在我使用的Nginx(1.4)版本中发生。 任何帮助或build议,将不胜感激。
嗨,我现在处于非常混乱的状态。 我已经在Centos 6上configuration了Nginx 1.6,它只为代码(js,css,html)提供所有其他的图片,并通过负载平衡器调用。 我的问题是,当我加载网页浏览器第一次需要时间,然后我刷新页面3至4倍的图像/文字正在打破,如akki显示为__akki__我怎么知道它的caching和如何做我解决了这个问题我的configuration如下所示 user nginx; worker_processes 12; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; proxy_buffers 30 32k; proxy_busy_buffers_size 64k; keepalive_timeout 65; gzip on; […]
我没有任何build议https://www.foobar.com应该redirect到https://www.foobar.com规则。 但为什么这样做呢? 这是我的curl输出: curl -Ik https://www.foobar.com HTTP/1.1 301 Moved Permanently Content-Length: 184 Content-Type: text/html Date: Wed, 11 Feb 2015 07:22:11 GMT Location: https://www.foobar.com/ Server: nginx/1.4.7 Connection: keep-alive Nginxconfiguration: upstream unicorn_www.foobar.com { server unix:/srv/www/foobar/shared/sockets/unicorn.sock fail_timeout=0; } server { listen 80; server_name foobar.com; return 301 https://www.foobar.com$request_uri; } server { listen 80; server_name www.foobar.com; return 301 https://www.foobar.com$request_uri; } […]
我想限制(但不阻止)各种爬虫。 根据类似问题的其他例子,我想出了这个: http { ## 10MB zone, 5 reqs per sec limit_req_zone $limit zone=zone_a:10m rate=5r/s; geo $limited { default 0; 157.55.39.31/32 1; 157.55.39.39/32 1; 157.55.39.40/32 1; 157.55.39.166/32 1; 157.55.39.167/32 1; 157.55.39.212/32 1; 157.55.39.213/32 1; 68.180.229.48/32 1; } map $limited $limit { 0 "false"; 1 "true"; } ## – do something – } 如果我理解正确,地理区块中匹配的IP会将$限制为1,然后地图块将把$ limit设置为true / […]
以前我有一个CentOS 6.5与Iptables和我configuration一些监狱为Nginx的build议在这里: 如何使用Nginx的fail2ban? 。 但现在我在CentOS 7中,试图使用新的防火墙和最新的fail2ban。 我知道有一个新的firewallcmd-ipset.conf 。 但是我想知道上面的链接的代码应该如何适应新的防火墙和新的fail2ban。 看着firewallcmd-ipset.conf它似乎也期望variablesport和name 。 所以也许就像用firewallcmd-ipsetreplaceiptables-multiport一样简单。 思考? 提前致谢,
我们有一个使用AWS的服务器设置,必须满足以下要求: 1:必须允许源自负载平衡器的传入请求(具体来说,运行状况检查和延迟检查)到达Web服务器。 2:必须允许包含正确Hoststring的有效请求到达Web服务器。 3:所有其他的请求必须被拒绝,非标准的Nginx'444'拒绝,这意味着它们将被忽略。 另外,我们的网站有几个子域,每个子域对不同的客户端运行基本相同的代码。 我们设置Nginx将所有httpstream量redirect到这些子域名到https。 我将调用这些子域名“a.example.com”,“b.example.com”和“c.example.com”。 我们已经注意到,在我们的日志中,我们的Django代码由于虚假的主机string超过了Nginx而返回了大量的500个错误。 我们看到的每个请求的主机string是“* .example.com”,它匹配我们的任何一个子域,因此使它成为Django代码。 由于该主机string无法识别,Django返回500错误。 以下是我们的Nginx站点可用文件的近似近似值: # Repeat this for each subdomain: server { server_name a.example.com; listen 80; return 301 https://a.example.com$request_uri; } server { server_name a.example.com; listen 443; location / { set $my_host $host; if ($host ~ "\d+\.\d+\.\d+\.\d+") { set $my_host "elb.example.com"; } } } 我们试图在Nginx中使用下面的“黑洞”服务器定义来捕获这个错误的主机string: server { server_name […]
我在这里被困在一个坏的网关问题和PHP 我在Debian Wheezy上使用Nginx 1.6和FPM。 它是一个干净和新的安装。 但每次如果我运行一个PHP文件,将导致一个错误的网关错误。 所以我几乎读了所有我发现的问题,但没有任何帮助。 从设置我使用多个虚拟主机(通过Ipsconfigpipe理)。 每个虚拟主机configuration文件都在Unix套接字上运行。 例: listen = /var/lib/php5-fpm/web4.sock listen.owner = web4 listen.group = client1 listen.mode = 0660 user = web4 group = client1 pm = dynamic pm.max_children = 10 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 5 pm.max_requests = 0 chdir = / 我的池ww conf看起来像http://pastebin.com/raw.php?i=4BU4sTEs 我的FPMconfigurationhttp://pastebin.com/gDcgV0aZ 从这边所有的套接字都在特定的文件夹中,但是只导致坏的网关消息。 日志文件在debugging模式下也是空的。 令人不安的是,如果我改变了nginx的虚拟主机 […]
我试图在我的vServer hhvm和使用的内存有问题。 性能很好,但使用的内存消耗是可怕的。 我有一台最小4GB和最大8GB内存的vServer,1天后hhvm使用大约2.4GB的可用内存,但仍然在增长。 在server.ini中有一个选项来设置hhvm进程应该使用的最大内存吗? 我目前正在hhvm中运行Typo3和Prestashop location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_pass unix:/var/run/hhvm/hhvm.sock; } 和server.ini ; php options pid = /var/run/hhvm/pid ; hhvm specific ;hhvm.server.port = 9000 hhvm.server.file_socket = /var/run/hhvm/hhvm.sock hhvm.server.type = fastcgi hhvm.server.default_document = index.php hhvm.log.use_log_file = true hhvm.log.file = /var/log/hhvm/error.log hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc