Articles of 独angular兽

如果独angular兽重载并返回502,nginx可以重试吗?

在将502返回给客户端之前是否有可能让nginx重试第二个后端? 会这样的工作吗? 前端: # haproxy:85 => [a few app servers]:8000 # more specifically: # haproxy => [nginx => unicorn (502 when busy)] # Will this try a second app server when the first returns 502? upstream haproxy { server 127.0.0.1:85; server 127.0.0.1:85 backup; } server { listen 80; proxy_pass http://haproxy; proxy_next_upstream http_502; } 后端: upstream […]

我的云服务器上的IO速度较慢,导致服务器重启问题缓慢?

我在Rackspace云上运行两个服务器,一个用于Web应用程序,一个用于db和redis实例。 Web服务器有1G的RAM和单核。 Nginx坐在运行2名工作人员的独angular兽前面。 我也有一个sidekiq实例运行。 这种configuration运行良好,服务器通常在非常低的cpu上嗡嗡声,因为该应用尚未启动。 但是,当我独angular兽重新启动,更不用说完整的应用程序部署,所有的地狱崩溃。 它看起来像这样: 基本上我的服务器被消灭了3分钟。 有些时候有些响应,但是监控触发了整个地方的停机警报(这只是零停机重启)。 如果我进行完整的部署,即使我正在预编译资源并上传,但图表跨度大约为8分钟,因此不需要进行服务器上的编译。 对我来说有趣的是我有一个在DigitalOcean上运行的完全相同的服务器设置。 我可以完全重新启动整个服务器shutdown -r并在50秒内启动并提供页面。 有了这个Rackspace服务器,我不敢重新启动它,即使testing,因为它会给我一个生产服务器非常重要的停机时间。 我不是一个Linux服务器pipe理员,所以我想知道是否人们可以告诉我,这是否与Rackspace云服务器相同。 我有十年的经验运行几个专门的Windows盒子,从来没有这样的问题。 hdparm针对服务器。 Rackspace公司: $ sudo hdparm -Tt /dev/xvdc /dev/xvdc: Timing cached reads: 5066 MB in 1.99 seconds = 2541.54 MB/sec Timing buffered disk reads: 238 MB in 3.00 seconds = 79.32 MB/sec DigitalOcean $ sudo hdparm -Tt /dev/vda /dev/vda: Timing […]

连接到AWS负载平衡器时,实例会变慢

我在AWS负载平衡器后面安装了5个t1.micro EC2。 一旦连接到LB,所有实例都会减速。 即使我直接向实例发送请求(绕过LB),10个请求中的8个请求也会花费30多秒。 实例的CPU负载似乎不成问题。 当我从LB中删除一个实例时,它的响应很好。 一旦它被添加回LB,请求再次减慢。 任何人都可以给我一些线索,为什么一旦LB连接起来,实例响应速度就会变慢? 提前致谢

Nginx和Unicorn在单独的机器上

我有一个非常标准的Rails应用程序与Unicorn和Nginx一起运行。 我想拆分应用程序本身,并在另一台机器上使用Nginx,在另一台机器上使用Unicorn(使用Rails应用程序)。 这里的想法是,我想在将来以后再添加与Unicorn的应用程序服务器,主要是为了一些轻负载平衡。 我可能从错误的angular度来解决这个问题。 这是正常的/可能的吗? 如果是这样,有人可以指向我的例子configuration或文档? 如果不是要走的路,那么实现最终目标的正确途径是什么? 我已经研究过HAProxy,但是在阅读了一些Nginx / Unicorn文档后,我发现没有任何额外的软件就可以实现这一点。

使用Nginx解释负载均衡,就像我五点一样

我发现了大量的DIY文章和教程,介绍如何使用上游服务器将Nginxconfiguration为负载平衡器: upstream backend { ip_hash; server 1.2.3.4; server 1.2.3.5; server 1.2.3.6; } server { location / { proxy_pass http://backend; } } 但是就configuration这个架构而言,这是我能find的程度。 目前我有一个rails应用程序部署到3后端VPS服务器,我使用Unicorn为我的HTTP服务器。 我是否需要在我的负载平衡服务器上安装ruby以及我的Rails应用程序和独angular兽? 我需要在每台上游服务器上安装Nginx吗? 如果是这样,我该如何configuration它们? 如果我在build筑中引入像光油这样的东西,那会怎样呢? 在负载平衡器或每个后端之前? 以下是我如何组织一切的视觉: +—> backend1 <—+ | | [requests] <—> [Nginx load-balancer]-+—> backend2 <—+-[Database server] | | +—> backend3 <—+

由独angular兽服务的Rails会为预编译的资产生成错误的指纹

我有一个生产服务器与nginx – >独angular兽 – >铁轨。 我预先编译的资产,把资产放在公共/资产与指纹(哈希)追加到文件名。 但是,当请求网页时,对application.css和application.js资源的引用将具有错误的指纹。 例如,rails helper stylesheet_link_tag将生成一个文件名,这个文件名在服务器的public / assets中不存在,因为请求的指纹与预编译的指纹不匹配。 图像资产工作正常(指纹匹配)。 对此进行故障排除,我在本地机器上预编译了资源,指纹与我服务器上的预编译指纹相匹配。 而且,在生产模式下使用webrick在本地运行时,一切正常。 然后我尝试在我的服务器上运行webrick,这使得我认为独angular兽是问题的根源。 我已经用–no-default-middleware(或-N)选项启动独angular兽来解决这个问题,并且这使得独angular兽像预编译的资产一样按预期行事。 我的理解是,这告诉独angular兽不要加载一个默认的Rack中间件,否则它会加载。 但是,我不明白为什么这个问题能够解决,或者是出了什么问题。 到底是怎么回事? 一些细节:Ubuntu 12.04,Rails 4.0.1,Ruby 2.1.0,带有第三方主题的bootstrap 3.0 更新: 我不相信这是一个nginx问题的原因是,当我从浏览器请求页面,然后查看源文件,application.css文件的文件名具有指纹,所以它实际上看起来像application-3855b1928b94aa5bff5e1dac1aa56882。 CSS。 这与我的服务器上的文件的真实指纹不匹配。 我确信服务器上的指纹是正确的,因为我在本地开发机器上得到了相同的指纹。 所以客户端正在加载网页,然后询问服务器的.css文件… nginx收到该请求,但无法find.css文件,因为它实际上不在那里,所以nginx行为如预期。 指纹产生两次:一次当我预编译资产,这是正常工作(很确定),并没有独angular兽参与发生。 第二次,当一个独angular兽工作人员看到stylesheet_link_tag助手的轨道并dynamic计算指纹(我认为这就是它在做什么),由于某种原因,这些指纹产生了不正确的指纹。 如果我在同一台服务器上用webrickreplace独angular兽,同样的过程也会发生,但是在这种情况下,指纹是匹配的。 如果我用-N旗启动独angular兽,指纹相匹配,但我不知道为什么这会有所作为,我不知道为什么没有人似乎必须这样做。

Rails 4 Unicorn + Nginx在Ubuntu 13.04 VPS上不断崩溃

我在bluevm.com买了一个多年的订阅(发现了一些优惠券代码,全年只有15美元左右)来推出我的第一个Rails Production服务器。 我在Ubuntu 13.04上运行Nginx和Unicorn和MySQL。 一旦我获得了初始的服务器configuration设置,服务器将在我运行rails独angular兽时运行,并将其指向我的configuration文件,并将其作为守护程序进程运行,但随机访问它时,URL(我正在使用cloudfare for DNS)我得到一个CentOS apachetesting页面? 这导致我相信VPS出了问题(因为CentOS是他们用来托pipeVPS的),在我看到这个testing页面时,在生产或nginx日志中找不到任何可能表明问题的东西。 他们的支持说,这个问题在我身上呢? 不知道从哪里去。 不能告诉是否只是便宜的托pipe导致我的问题或什么? 服务器统计:512MB RAM 512MB swap 2GB / 25GB硬盘使用1TB带宽 我能想到的唯一的事情是,我正在得到某种DDOS攻击或者是服务器崩溃? 我试图设置ufw,但不知道它是否实际上工作(想要阻止所有stream量,除了80和4321,这是ssh运行的端口) 当我注意到服务器正在显示CentOS apachetesting页面而不是rails应用程序时,当我尝试ssh进入VPS时,出现“连接被拒绝” 我试图find一个关于build立一个VPS for Rails 4的简明指南,但找不到一个完整的综合指南,而且我不确定问题是否与我或VPS 任何投入将不胜感激!

Nginx +独angular兽+ spdy +性能testing

我有一个Ruby on Rails网站,它是在一个nginx反向代理背后的独angular兽web服务器上托pipe的。 我想评估,如果使用spdy将提高我在这个设置下的performance。 具体来说,我需要下面的指示: 使用反向代理无效使用spdy的收益? 我可以使用什么性能/负载testing工具来评估使用spdy的收益? 有没有办法强制nginx只能说spdy? 关于第二个问题,我发现neoload和loadrunner 12确实支持spdy。 随着neoload我有麻烦得到它认识到我的服务器使用spdy尽pipechrome:// net-internals /#spdy和http://spdycheck.org/告诉我,它是使用spdy(我使用spdy 3.1,当我用斯马迪2 neoload确实认出它)。 随着loadrunner我还没有find一种方法来确保它是testingspdy。 我正在使用spdy_url函数,但文档不告诉我,如果spdy_url保证我在下面使用spdy。 可以肯定的一种方法是将nginxconfiguration为只能说spdy(第三个问题)。

NGINX Unicorn 504网关超时

我通过这个问题尝试了我在Google中find的所有内容,但没有任何结果。 反正它不起作用。 我的NGINX默认: upstream app { server unix:/tmp/unicorn.rails.sock fail_timeout=0; } server { listen 80; root /home/rails/public; server_name _; index index.htm index.html; location / { try_files $uri/index.html $uri.html $uri @app; } location ~* ^.+\.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|mp3|flv|mpeg|avi)$ { try_files $uri @app; } location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app; } } NGINX错误日志: *12 […]

突然开始经历了巨大的等待时间,才请求服务器

我们的networking应用程序一天获得20k-30k的观看次数,并且稳步增长。 大约4天前,我们突然开始等待30-40秒的等待时间,之后甚至在前一天还在1秒内渲染HTML。 在新的文物合成中,这些时代简直就是“等待”。 通过监控nginx日志,我可以看到这些时间对应于传入请求到达服务器的时间。 这是一个运行在2GB液滴上的Unicorn&Nginx的Rails应用程序。 我以前根据这篇文章优化我的独angular兽configuration:https://www.digitalocean.com/community/tutorials/how-to-optimize-unicorn-workers-in-a-ruby-on-rails-app,和我们的内存使用量往往徘徊在50%左右。 尽pipe如此,我还注意到在上面的相同的日志输出中的一堆: 2016/03/15 06:52:36 [error] 9460#0: *1110377 connect() to unix:/tmp/unicorn.streamfeed.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 66.226.75.13, server: streamfeed.com, request: "GET /watch HTTP/1.1", upstream: "http://unix:/tmp/unicorn.streamfeed.sock:/watch", host: "streamfeed.com", referrer: "http://google.com/" 在没有任何更好的想法的情况下,我认为可能意味着我们的stream量比独angular兽工人能够处理的stream量要多(我们的stream量一直在稳步增长,而且我们有一天还有最忙的一天)。 所以我把我们的液滴升到了4GB,使麒麟工人的数量增加了一倍,但是这并没有解决它 – 有时候我看到了这11个错误,有时候是110。 这不是我的代码优化的问题 – 一旦请求最终通过,包括任何数据库查询,相关操作仍然需要1-2秒才能实际处理(每New Relic)。 延迟发生在请求甚至到达服务器之前。 我们两个水滴(应用程序服务器和数据库)的CPU使用率都低于50%,内存使用率也是如此。 Unicorn日志中没有错误。 我已经尝试了我在网上find的每一个调整/优化nginx和独angular兽的方法,没有什么区别 – 如果有的话,加载时间不断增加。 我们现在正在等待处理请求的40-50秒,这实际上意味着我们的网站已经瘫痪。 在开始之前,我还没有改变任何相关的设置或代码很长一段时间。 我已经把我的相关文件回滚到开始发生时的状态,因为我所做的任何改变都没有改变。 […]