我似乎没有理由得到麒麟工人的间歇性超时,我想要一些帮助来debugging实际的问题。 这更糟,因为它可以处理大约10到20个请求,然后1将超时,然后再有10 – 20个请求,同样的事情会再次发生。 我已经创build了一个开发环境来说明这个问题,所以除了我之外没有任何交通。 这个堆栈是Ubuntu 14.04,Rails 3.2.21,PostgreSQL 9.3.4,Unicorn 4.8.3,Nginx 1.6.2。 问题 我会详细描述它不工作的时间。 我通过浏览器请求一个url。 Started GET "/offers.xml?q%5bupdated_at_greater_than_or_equal_to%5d=2014-12-28T18:01:16Z&q%5bupdated_at_less_than_or_equal_to%5d=2014-12-28T19:30:21Z" for 127.0.0.1 at 2014-12-30 15:58:59 +0000 Completed 200 OK in 10.3ms (Views: 0.0ms | ActiveRecord: 2.1ms) 正如你所看到的,这个请求在10.3ms内成功地完成了200个响应状态。 然而,浏览器挂了大约30秒,独angular兽杀死了工人: E, [2014-12-30T15:59:30.267605 #13678] ERROR — : worker=0 PID:14594 timeout (31s > 30s), killing E, [2014-12-30T15:59:30.279000 #13678] ERROR — : reaped […]
在过去的几周里,我花了很多时间评估不同的方式将应用程序部署到云上(让我们假设AWS为这个问题),但是却找不到令人满意的解决scheme。 我们有一个非常标准的设置: Rails应用程序 Sidekiq工作者 Cronjobs 自动缩放 弹性豆茎非常容易设置为导轨部分,但吸吮sidekiq和cronjobs。 在查看coreos及其所有function/工具之后,我们确信这是最简单的解决scheme。 对于rails,sidekiq和cron,同样的Docker镜像,但是都有不同的CMD 。 现在,玩弄fleet和十二个ec2实例,我无法理解它背后的哲学: 全球单位有点“螺栓上”,不允许status或journal命令。 他们也是在不久之前被介绍的,暗示他们不是处理东西的主要方式。 但唯一的方法是运行像myservice{1..9}.service这样的东西。 全局单元与自动扩展一起工作 – 一旦新实例启动并连接到集群,集群将启动容器(如果元数据匹配)。 但似乎没有办法更新图像没有宕机,再加上上述缺less的命令和工具。 使用第二种方法,自动缩放不会带来任何好处,因为我必须指定我需要的确切数量的副本。 顺便说一下,这似乎也是与kubernetes的情况! 因此,由于许多大公司都运行docker集装箱,当然是自动缩放的(尤其是谷歌与Kubernetes),如何build立一个简单的自动缩放docker环境,而不必手动更改容器的数量? 注意:我甚至不需要像资源pipe理这样的复杂的答案(就像ECS那样,但这是另一回事)。 真的,我所需要的只是一种在实例上扮演angular色的方法,并且有一个工具,可以确保此实例在启动后运行正确的容器,包括滚动更新。 也许现在没有什么好的答案,因为我在网上找不到任何令人满意的东西。 但也许有人有几个build议。 谢谢!
所以我有一个每10分钟运行一次的方法(Background.cron)。 Background.cron通过一组数据库行循环,如果符合某些条件,则运行一个ActionMailer方法发送一封电子邮件。 但是,当ActionMailer方法运行时,似乎正在发生的事情是(根据我的日志),Background.cron方法将停止,直到下一个cron作业准备好开始。 有什么解释呢? 服务器设置是Passenger和Ruby Enterprise Edition的Apache 2。 PassengerMaxPoolSize设置为10,PassengerMaxInstancesPerApp为5。 Slicehost上有一个512MB的片。
我的设置: 专用服务器,运行我自己的DNS服务器Apache 2,运行在Phusion Passenger 2.2.9上的Ruby on Rails应用程序,使用铁路的dynamic资产主机生成器 ,使用这些子域获取资产:static1,static2,static3,static4。 在我的Apacheconfiguration为子域名* .domain.com通配符。 问题: 如果我在没有上网的情况下(几个小时)前往网站,有时一个或多个资产子域名需要很长时间才能加载或根本无法加载。 我怀疑我的DNS服务器安装不正确,查找其中一个子域失败或需要很长时间。 我使用了几个DNS检查器,但没有发现我的DNS设置有任何主要问题。 这只发生在我没有浏览网页一段时间之后,因为我开始浏览网站,所有的东西都加载得很好。 现在我切换回使用只有1资产子域(static.domain.com)这似乎工作。 我只是想知道,如果我的DNS设置或我的Apacheconfiguration有什么问题。 如果需要,我可以提供其他细节。
我正在从nginx +乘客迁移到nginx +独angular兽,我已经达到了一点,我有点卡住了。 当我试图查看我的testing服务器时,除了404页面,我什么都没有。 我确定我的虚拟主机configuration有一些东西,但是我只是没有看到问题所在。 任何帮助,这是非常感谢。 这是我的vhost文件的当前版本 upstream unicorn-staging { server unix:/data/appname/staging/current/tmp/sockets/unicorn-staging.sock fail_timeout=0; } server { listen 80 deferred; listen 443; ssl on; root /data/appname/staging/current/public; server_name foo; access_log /data/appname/staging/current/log/unicorn-staging-access.log; error_log /data/appname/staging/current/log/unicorn-staging-error.log; client_max_body_size 4G; ssl_certificate /data/appname/staging/shared/certs/appname.crt; ssl_certificate_key /data/appname/staging/shared/certs/appname.key; location / { proxy_pass http://unicorn-staging; proxy_redirect off; 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-Proto […]
我的post的主题几乎总结了我的问题:PassengerMaxPoolSize达到时会发生什么? 例如 : PassengerMaxPoolSize根据我们的系统规格configuration为40 如果所有 40个会话处于活动状态(处理请求)并且我们的负载平衡器将另一个会话传递给此特定Web服务器,会发生什么? 这将发送一个第四十一届会议来处理没有可用的旅客进程。
我有两个应用程序在我的服务器上运行域 x.abc.com admin.x.abc.com x.abc.com is running on port 80 admin.x.abc.com is running on port 8080 我可以从浏览器访问x.abc.com,但是当我尝试admin.x.abc.com时,它仅向x.abc.com发送请求。 在单机上configuration两个具有不同域和端口的Web应用程序的正确方法是什么? 下面分别列出了我的虚拟主机文件x.abc.com和admin.x.abc.com <VirtualHost *:80> ServerName www.x.abc.com ServerAlias x.abc.com RailsEnv test DocumentRoot /home/cp/cp/public <Directory /home/cp/cp/public/> </Directory> LogLevel warn ErrorLog /home/cp/cp/log/error.log CustomLog /home/cp/cp/access.log combined RewriteCond %{HTTP_HOST} ^admin.x.abc.com RewriteRule (.*) http://localhost:8080/$1 [R=301,L] </VirtualHost> <VirtualHost *:8080> ServerName www.admin.x.abc.com ServerAlias admin.x.abc.com RailsEnv test DocumentRoot […]
我的生产网站上有一个Debian Linux VPS服务器(512MB)。 我使用Apache的Phusion Passenger来为Ruby 1.9的Rails 2.3.4应用程序提供服务。 我将Phusion乘客实例池限制为3个 尽pipestream量相对较低,但服务器有时会崩溃,我注意到(使用'top'命令时)有很多apache实例(/ usr / sbin / apache2 -k start),可能其中有20个占用了所有记忆我和网站变得无法响应。 我不知道该怎么做,从哪里开始挖掘潜在的问题,或者如何发现或限制apache实例的数量。 谢谢, 谭
希望你能帮助! 我正在考虑将Rails应用程序从共享托pipe提供程序移动到专用服务器或像Linode,SliceHost,Webbynode等服务,如果我理解正确,服务器的安全性完全取决于您。 与共享托pipe我习惯于没有 root访问权限,所以防火墙和大多数其他安全问题往往由托pipe公司处理。 所以我的担心是移动到服务器,我(服务器pipe理员菜鸟)正在照顾安全。 我很想有一个专家服务器pipe理员照顾,但是这是不可能的。 有人知道像SliceHost或Webbynode这样的负担得起的服务,其中安全是由提供商pipe理的吗? 我已经看过Heroku,但是由于SSL完整的authentication要求,目前对我来说是不可接受的。 另外,是否有人知道如果服务器映像可用于Linode / SliceHost / Webbynode /其他安全性照顾或更简单? (我想我主要担心的是我是一个Web应用程序开发人员,他认为他最终会花费更多的时间来保护服务器,而不是编码。 谢谢你的时间,艾略特
我已经在Ubuntu Server 12.04LTS上设置了Rails,Passenger,nginx和PostgreSQL。 然而,在试图访问应用程序/网站时,我遇到了一个错误页面,说应用程序无法启动,因为源文件丢失。 Error message: cannot load such file — bundler 。 我的nginxconfiguration( /opt/nginx/conf/nginx.conf ): user railsapp; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; passenger_root /home/railsapp/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.14; passenger_ruby /home/railsapp/.rvm/rubies/ruby-1.9.3-p194/bin/ruby; server { listen 80; server_name fitness_schedules.local; root /home/railsapp/fitness_schedules/public; passenger_enabled on; rack_env development; } } 这是错误消息: 应用程序需要的源文件缺失。 […]