Articles of ruby,

如何使用乘客在Nginx服务器上部署Rails项目?

在我的本地,我使用werbrick应用程序服务器为我的本地主机。 我有Ruby版本1.9.2和Rails版本3.1。 如何在Nginx上实时部署Rails项目? 那么应用服务器(比如带有apache的乘客模块)能用于Rails 3.1应用的Nginx服务器吗?

在UNIX套接字中运行Rails服务器

有没有可能在UNIX套接字中运行rails server ? 我问,因为rails server提供了这样一个漂亮的输出,并且很容易区分SQL查询和HTTP请求等。但是,我使用Nginx,所以我想用UNIX套接字连接应用程序服务器,但它我有一些麻烦。 以下命令导致错误: bundle exec rails server thin –socket=/var/run/rails_app.sock 看起来,它试图parsing–socket作为rails server上的一个选项,而不是简单的。 有没有什么办法解决这个问题,或者我坚持使用thin start和屈服于一个不太漂亮的日志输出?

约30个RoR应用程序等待(冻结)1个应用程序启动..如何解决这个问题?

我有一个约30个Ruby On Rails应用程序的服务器。 当我(重新)启动30个应用程序中的1个时,所有其他应用程序都无法访问,他们似乎在等待1个应用程序(重新启动)。 甚至命令:乘客身份,似乎等待直到1应用程序(重新)开始。 这是正常的行为? 或者如何解决这个问题? (虚拟)服务器规格: CPU:3个核心x 2.2ghz 内存:4GB 硬盘:40GB 服务器软件: CentOS版本6.3(最终版) Nginx版本:nginx / 1.0.12 Ruby 1.9.3p125(2012-02-16修订版34643)[x86_64-linux] Phusion旅客版本3.0.18 Nginx /旅客configuration: passenger_max_pool_size 50; passenger_min_instances 1; passenger_max_instances_per_app 2; 如果需要,我很乐意提供更多的细节。 更新**安装的客运企业和nginx,现在的应用程序不再打扰对方了,所以我认为这个问题已经修复了passenger_rolling_restarts;

Rails国际化:从域名设置区域设置

我试图在我的Rails应用程序上实现国际化。 这是我的应用程序控制器的一部分 before_action :set_locale def set_locale I18n.locale = extract_locale_from_tld || I18n.default_locale end def extract_locale_from_tld parsed_locale = request.host.split('.').last I18n.available_locales.include?(parsed_locale.to_sym) ? parsed_locale : nil end 它似乎不工作,我只能设置使用scope "(:locale)", locale: /en|se/ do在我不想要的路线的url params的区域设置。 从导轨指南,他们指出,切换菜单应该像这样执行。 link_to("Deutsch", "#{APP_CONFIG[:deutsch_website_url]}#{request.env['REQUEST_URI']}") 你怎么实现这个? 我目前的切换菜单看起来像这样。 <% if I18n.locale == I18n.default_locale %> <li><%= link_to image_tag("eng.png", :alt => "England", :class =>"round"), :locale=>'en' %> <li><h5><%= link_to_unless I18n.locale == :se, […]

部署后,我看到标准的nginx的“它的工作!”

我已经将Capistrano的Rails应用程序部署到了VPS,当我尝试使用“APP_NAME.com”访问它时,我看到标准的Nginx的“It works!”。 页。 我试图从/var/www文件夹中删除index.html文件,现在我看到它的文件夹: apps , log和tmp 。 在nginx.conf我有: user nginx web; pid /var/run/nginx.pid; error_log /var/www/log/nginx.error.log; events { worker_connections 1024; accept_mutex off; use epoll; } http { include mime.types; types_hash_max_size 2048; server_names_hash_bucket_size 64; default_type application/octet-stream; access_log /var/www/log/nginx.access.log combined; sendfile on; tcp_nopush on; # off may be better for *some* Comet/long-poll stuff tcp_nodelay off; # on […]

Nginx渲染502错误页面

我试图configurationnginx与美洲狮服务器我的Ruby on Rails应用程序。 每当我访问我的网页,我得到一个502错误的网关错误。 在/ etc / nginx的/启用的站点 – / PUMA-API upstream puma_puma-api_production { server unix:/home/deploy/apps/puma-api/shared/tmp/sockets/puma-api-puma.sock fail_timeout=0; } server { listen 80 default; client_max_body_size 4G; keepalive_timeout 10; error_page 500 502 504 /500.html; error_page 503 @503; root /home/deploy/apps/puma-api/current/public; try_files $uri/index.html $uri @puma_puma-api_production; location @puma_puma-api_production { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://puma_puma-api_production; # […]

没有nginx的Puma – 同一个IP:PORT上的多个ruby应用程序

Nginx在生产中的重要性通常是基于其为慢速客户提供服务的能力; 在RESTful API的设置中,似乎是生产堆栈的一个不必要的层,特别是Puma(不同于广泛使用的独angular兽可以处理nginx工作)。 Puma可以允许多个慢速客户端进行连接,而无需在请求事务中阻止工作人员。 因此,Puma优雅地处理慢速客户。 Heroku推荐Puma用于您期望速度慢的客户端。 REF 如何启用Puma在同一端口上提供多个ruby应用程序而不使用nginx作为反向代理?

Passenger + nginx:在一个子目录中托pipe一个Rails应用程序

我试图在www.myserver.com下的子目录下部署一个应用程序,遵循Passenger文档中的步骤: http : //www.modrails.com/documentation/Users%20guide.html#deploying_rails_to_sub_uri 这似乎工作,但Rails的路线现在都期待额外的子目录/a ,试图访问根www.myserver.com/a给我一个RoutingError。 我已经尝试设置relative_url_root ,但没有改变。 我需要为我的路线文件中的每个路线添加前缀/a吗?

乘客产生了许多机架应用程序

passenger-memory-stats输出 —– Passenger processes —– PID VMSize Private Name ——————————- 28572 207.4 MB ? Rack: /home/myapp/application 28580 207.0 MB ? Rack: /home/myapp/application 28588 206.0 MB ? Rack: /home/myapp/application 28648 206.5 MB ? Rack: /home/myapp/application 29005 23.0 MB ? PassengerWatchdog 29008 100.5 MB ? PassengerHelperAgent 29010 43.1 MB ? Passenger spawn server 29013 70.8 MB ? […]

用于Ruby on Rails产品服务器之前错误安装的Nginx

注意:虽然这个问题与服务器安装有关,但是它与开发和生产环境混淆了,像我这样的初学者。 作为新的服务器设置,经过一番研究,我决定为我的Ruby on Rails服务器安装Nginx。 下面是关于Apache的一些操作方法,以及一些关于如何在Ubuntu中安装NginX的方法,我运行以下命令安装了NginX: $ sudo aptitude install nginx (注意:我先安装了依赖关系)。 一切正常,NginX成功地为其默认页面提供服务。 随后,我发现了这个非常好的post,关于如何安装MySQL,Ruby,Passenger和NginX,这正是我想要做的。 令我沮丧的是,我意识到我必须使用Passenger来安装NginX,通过运行: $ sudo passenger-install-nginx-module 为了覆盖我之前安装的NginX,我运行了这个命令,结果是我安装了2个NginX:一个成功地为/ etc / nginx /(原始安装)服务我的页面,另一个安装在/ opt / nginx /(Phusion-Passenger安装 – 注意:我还没有完成前面提到的文章中的说明来使这个安装正常工作)。 我如何解决这个问题,以便我的服务器上只安装Phusion-Passenger?