我正在使用Unicorn作为我的Web应用程序前面的应用程序服务器。 我希望通过同时运行两个版本的站点来进行蓝/绿色testing。 问题是根path是从一个版本的网站到另一个不同。 有没有办法做到这一点? 这是我的configuration。 现在它不起作用,因为当第二台服务器出现循环时,文件被破坏,因为它们不在根path。 upstream unicorn { server unix:/tmp/unicorn.main.sock fail_timeout=0; server unix:/tmp/unicorn.main_staging.sock fail_timeout=0; } server { listen 80; server_name mysite.com; root /var/www/sites/main/current/public; try_files $uri/index.html $uri @unicorn; location @unicorn { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass https://unicorn; } location ~ ^/assets/ { expires 1y; add_header Cache-Control public; add_header ETag ""; break; […]
我在jMeter中进行一些压力testing时遇到了问题。 基本上,我们正在达到68个并发用户的硬性限制。 一旦testing达到这个数量的用户,我们得到502坏的网关错误。 有趣的是,我们得到了68个虚拟机用户和CPU和RAM两倍的故障。 所以这让我相信这是一个configuration问题。 毕竟,每台服务器上的Docker容器之间的configuration是相同的。 我已经尝试提高nginx.conf中的worker_connections设置,但是没有任何效果。 我什至重新启动机器,以确保新的设置被应用。 有什么其他的想法来看看或尝试什么? 我不知道这是否有帮助,但这是我们在nginx服务器上的configuration失败… upstream unicorn_server { server unix:/app/tmp/unicorn.sock fail_timeout=0; keepalive 512; } server { listen 4043 ssl; ssl_certificate /etc/nginx/certs/hive.crt; ssl_certificate_key /etc/nginx/certs/hive.key; gzip on; gzip_min_length 1000; gzip_proxied expired no-cache no-store private auth; gzip_types application/json; root /app/public; try_files $uri @unicorn_server; keepalive_timeout 10; location @unicorn_server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host […]
我有一个已经运行了一段时间的Opsworks Rails Layer(nginx / unicorn)实例,并且我已经成功地直接从GitHub中部署了我的Rails应用。 昨天,我开始看到一个奇怪的错误,我们最新的代码更改实际上并没有被Opsworks部署。 即我得到一个500错误, 只能从我的github回购旧版本的堆栈跟踪。 发生错误的行不再存在于最新版本的代码中。 当我SSH进入实例并查看/srv/www/<myapp>/current文件夹时,我看到最新的代码文件,并在Opsworks Deploy日志文件中看到对最新GitHub提交的引用。 它看起来像所有东西都正确部署(即我看到没有错误的日志文件,部署成功完成),但显然有什么问题。 有没有人有任何想法? 有没有我不知道的服务器上的代码caching? 我终于尝试停止/重新启动实例,当它重新启动时,我开始得到这个错误: (111:连接被拒绝),当连接到上游 – Opsworks Rails 4 。 我不知道这两个问题是否相关…也许这是所有关于独angular兽不能正常重启…但现在,我真的想深究为什么我最新的GitHub回购代码不看起来像是成功的部署,最终在服务器上运行。 提前致谢!
我有一个运行在Unicorn上的Teambox安装,后者有时会在30秒后超时。 这个configuration的想法是让Apache等到Unicorn主服务器发送超时,因为如果我没有错的话,Unicorn将退出超时工作进程,但是产生一个新进程来处理相同的请求。 有没有办法configurationApache不超时,如timeout = 0的nginxconfiguration? 谢谢您的帮助! 编辑 我find了一个方法,虽然它并不像我预期的那样工作。 在ProxyPass指令中,你必须在url之后指定一个retry=0选项: ProxyPass / http://url/ retry=0 但是,如果url是ProxyBalancer则ProxyBalancer 。
我正在构build一个基于服务的Web应用程序。 它包含一个纯粹用于处理请求的主要rails应用程序,以及许多其他正在处理这些请求的sinatra服务。 我决定与独angular兽去实际的networking服务器为我的Rails应用程序。 我的困境是挑选合适的堆栈。 我已经阅读了一些有关HAProxy的负载平衡的伟大评论,我认为这是长远的方式。 另一方面,我认识的一些人也说,当我将它与独angular兽一起使用时,nginx会足够好。 目前,我的整个系统将驻留在一台服务器上。 将来,不同的服务器可能会承载不同的服务。 我会介绍haproxy引入不必要的开销吗? 如何使用HAproxy和nginx一起获得真正的收益?
试图获得部署的Rails应用程序。 一切安装nginx,独angular兽,设置。 错误获取: [109.etc] env RAILS_ENV=production sh -c 'kill -s USR2 '\''cat /tmp/unicorn.pid'\''' sh: line 0: kill: cat /tmp/unicorn.pid: arguments must be process or job IDs 这怎么解决? 我search了一个小时,阅读了很多文档和博客,仍然没有find解决办法。 deploy.rb # config/deploy.rb require "bundler/capistrano" set :scm, :git set :repository, "[email protected]:/srv/paintings.git" set :branch, "origin/master" set :migrate_target, :current set :ssh_options, { :forward_agent => true } set :rails_env, "production" […]
根据Unicorn文档,Rails应用程序和其他Rack应用程序有不同的二进制文件: non-Rails Rack applications In APP_ROOT, run: unicorn for Rails applications (should work for all 1.2 or later versions) In RAILS_ROOT, run: unicorn_rails 他们似乎也采取相同的命令行参数。 但Railsbuild立在机架之上,所以我不明白为什么这种二分法是必需的。 有什么原因,你不能只使用unicorn的Rails应用程序?
我目前正试图获得一个redmine的实例并运行。 到目前为止,我已经取得了成功,但是现在我正在用apache / unicornconfiguration打开一个路障。 下面的conf包含在我的httpd.conf中。 ProxyPass /redmine balancer://redmine ProxyPassReverse /redmine balancer://redmine <Proxy balancer://redmine> BalancerMember http://127.0.0.1:4000 BalancerMember http://127.0.0.1:4001 BalancerMember http://127.0.0.1:4002 BalancerMember http://127.0.0.1:4003 Order deny,allow Allow from all </Proxy> 问题是页面生成没有任何格式或资产,并且所有链接不包括主机/ redmine前缀
尝试以非root用户的身份启动独angular兽守护进程,但是难以实现。 独angular兽给出了以下错误: directory for pid=/var/run/sinatra_test/sinatra_test.pid not writable 所以我做了以下几点: sudo mkdir /var/run/sinatra_test sudo chown ruby:www-data /var/run/sinatra_test sudo chmod g+w /var/run/sinatra_test ls -ld / var / run / sinatra_test返回: drwxrwxr-x 2 ruby www-data 60 Oct 27 09:55 / var / run / sinatra_test 我错过了什么? 仍然获得权限拒绝错误。
我刚刚使用Rackconnectbuild立了RHEL 6.1 Rackspace云主机和RHEL 6.2专用主机的混合体。 在RHEL 6.2专用主机上运行Redis 2.4.16的情况下,我在Rails 3.2.8应用程序中遇到了间歇性的Redis超时。 没有networking延迟或数据包丢失。 此外,我们的云或专用服务器上的任何接口或Rackspace的托pipe防火墙上都没有错误。 当Redis超时时,即使设置为执行debugging日志logging,redis中也没有logging。 我们收到的唯一错误是Airbrake说有一个Redis超时。 networking拓扑结构: RHEL 6.1 cloud hosts <–> Alert logic IDS <–> Cisco ASA 5510 <–> RHEL 6.2 dedicated hosts (web nodes) (two way NAT) (db hosts running redis) 从数据库主机到networking主机: 64 bytes from 10.181.230.180: icmp_seq=998 ttl=64 time=0.520 ms 64 bytes from 10.181.230.180: icmp_seq=999 ttl=64 time=0.579 […]