Articles of 负载均衡

NginxconfigurationSSL负载均衡器

我有一个Docker服务器,我已经从sameersbn / docker-gitlab安装了GitLab 我有一个nginx容器,它侦听443:433和80:80,我将使用这个负载平衡HTTP和HTTP(带签名证书)请求 nginx.conf worker_processes auto; events { worker_connections 1024; } http { ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; upstream gitlab { server gitlab:10080; } server { listen 80; listen 443 ssl; server_name www.domain.tld; ssl on; ssl_certificate /usr/local/share/ca-certificates/domain.crt; ssl_certificate_key /usr/local/share/ca-certificates/domain.key; ssl_trusted_certificate /usr/local/share/ca-certificates/GandiStandardSSLCA2.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or […]

Nginx加粘滞路由方法是否适合基于路由的负载平衡?

我早些时候发布了这个问题: https : //stackoverflow.com/questions/34977074/how-to-use-load-balancer-for-sockets 基本上我的要求是通过负载均衡器发送特定的url请求到特定的应用服务器。所以我正在寻找某种负载均衡器,可以完成我的要求。 我正在阅读关于nginx plus,并find这个链接。 https://www.nginx.com/resources/admin-guide/load-balancer/ 这个文档中有一个粘性路由的概念,我只是想知道它可以达到我的目的吗?

用nginx设置dynamic上行

假设我有上游来源 upstream first { } upstream second { } 然后在server块 map $geoip_country_code $is_china { default no; CN yes; } 我想实现的是$is_china ,使用不同的上游 proxy_pass http://$preferred_host/; 我无法想象如何用nginx做到这一点。

低延迟的Web服务器/负载均衡器为世界的非Twitters

Apache httpd在过去几年中做得很好,在我一直维护的传统自定义LAMP堆栈应用程序中坚如磐石,性能卓越(阅读:试图逃避) 现在,我的LAMP堆栈天数已经编号,正在走向多彩的奇妙世界: 1) Scala REST framework on Jetty 8 (on the fence between Spray & Scalatra) 2) Load balancer/Static file server: Apache Httpd, Nginx, or ? 3) MySQL via ScalaQuery 4) Client-side: jQuery, Backbone, 320 & up or Twitter Bootstrap 选项2是这个问题的重点。 我所看到的基准testing表明,Nginx,Lighthttpd,G-WAN(特别是)和朋友们在性能方面吹袭了Apache,但是这种消失似乎在Web服务器处理多个同时连接的高负载情况下。 鉴于我们的服务器每个月最高带宽为100GB,平均负载在0.10左右,高负载情况显然不起作用。 基本上我需要连接到应用程序服务器(Jetty)和Web服务器的静态文件传输,既可靠又快速。 最后,Web服务器应该作为应用程序服务器的负载平衡器(SSL不需要,服务器驻留在ASA之后)兼任。 我不确定Apache Httpd与替代scheme相比有多快,但是经过testing的软件是经过validation的。 所以,如果我使用Nginx或其他Apache替代品,那么在可见性方面会有什么不同吗? 我不假设,但为了实现近乎即时的页面加载,把问题放在那里;-)

nginx负载均衡器和OAuth

我正在尝试为两台服务器设置一个nginx负载均衡器/代理,并在这两台服务器上运行OAuth身份validation的应用程序。 当端口80上运行nginx时,一切运行正常,但是当我将其放在任何其他端口上时,OAuth身份validation将失败并出现“无效签名”错误消息。 这是我在nginx.conf中的服务器configuration: server { listen 80; server_name localhost; location / { proxy_pass http://webservice; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-FORWARDED-PROTO https; } 有没有人遇到类似的问题? PS:我注意到,OAuth领域属性中省略了端口80,但其他端口正常添加。

NGINX加载barencer

我们已经设置了nginx服务器,并试图用2个其他服务器进行负载平衡。 设置是:一台主服务器(代理服务器)和另外两台服务器(服务请求) 我们有一组.css,.js和.php文件。 我们希望主服务器为所有的静态文件(如.css,.js和图像文件)提供服务,并且仅用于.php请求,我们希望以负载均衡的方式将请求转发到2台服务器之间。 Plz指导我如何做到这一点。

负载平衡networking套接字和长轮询

如果我的networking应用程序运行在三台支持Web套接字的客户机上,并且客户机连接到其中一台机器上,那么每个请求是否总会进入同一台机器,或者负载平衡器是否可以将其发送到不同的机器上? 基本上,一旦networking浏览器通过networking套接字build立连接,负载平衡器可以发送每个请求到不同的服务器吗? 如果是这样,哪个负载平衡器可以做到这一点? 另外,如果我使用类似检测浏览器兼容性的框架并select适当的协议,这将如何影响负载均衡机会?

Socket.io使用xhr-polling时,服务器的响应时间很长

我正在尝试扩展消息应用程序。 我使用nodeJS与Socket.io和Redis的存储在后端。 客户端可以是iPhone本地浏览器,安卓浏览器等 我使用SSL进行节点连接,使用Nginx来平衡套接字连接。 我不是群集我的socket.io应用程序,而是我负载平衡超过10节点服务器(我们有大量的用户)。 当运输是Websockets的时候,一切看起来都很好,但是当它回到xhr-polling(旧的android手机的情况下)时,我看到New-relic中一个巨大的响应时间高达3000 rpm。 而且我必须每隔一个小时左右重新启动节点服务器,否则服务器崩溃。 我在想,如果我做错了什么,并且在使用xhr-polling传输时,是否有任何措施可以用来扩展socket.io? 例如增加或减less轮询持续时间?

关于nginx上游模块中的ip_hash

我想用nginxreplace磅作为loadbalancer,所有的testing看起来都很好。 我会做一个典型的上游configuration,像这样: upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com; } 现在有两个问题尚待解决: 这种粘性持续多久? 有一个ttl被定义在某个地方吗? 粘性是否会重新启动和/或重新加载nginx? 我在nginx维基上找不到答案。 官方文档的链接是受欢迎的。

负载平衡器中的自定义路由

是否可以在NGINX或其他负载平衡器中定义自定义路由? 即我有一个cookie或标题,并根据其价值,我决定select哪个后端服务器? 我需要一些非常简单的逻辑 – 值a1,a2,a3 – 到服务器A,值b1,b2到服务器B,所有其他到服务器C