`
xinlanzero
  • 浏览: 252006 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

使用nginx+passenger部署Rails应用

    博客分类:
  • Ruby
 
阅读更多

(转帖请注明 http://qa.taobao.com

部署Rails应用有多种选择,使用nginx+passenger是一种不错的选择。

如何安装passenger + nginx,具体安装请参考:http://blog.samsonis.me/2011/03/archlinux-rvm-ruby-rails-nginx-passenger-and-you/

这里讲下passenger的相关配置,passenger 有两种启动方式:

作为nginx模块来启动

在nginx配置文件中添加passenger相关配置。
(具体参考file:///usr/local/rvm/gems/ruby-1.9.2-p0/gems/passenger-3.0.7/doc/Users%20guide%20Nginx.html)
——————————-
#/opt/nginx/conf/nginx.conf
http {
passenger_root /usr/local/rvm/gems/ruby-1.9.2-p0/gems/passenger-3.0.7;
passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p0/ruby;
passenger_max_pool_size 100;
passenger_max_instances_per_app 20;
passenger_spawn_method smart;# smart-lv2/conservative
passenger_pool_idle_time 3600;
passenger_pre_start http://twork/rack;
...
server {
listen 80;
server_name twork;
root /home/rails/public;
passenger_enabled on;
passenger_use_global_queue on;
passenger_min_instances 3;
...

独立启动(Standalone)

命令行:
passenger start -p 3000 -e production --max-pool-size 100 --min-instances 3 --spawn-method smart;
本以为这些配置能放到配置文件中,在passenger启动的时候加载进来,但passenger start –help没发现配置文件的选项,网上也没搜索到。(mongrel支持的)

解决请求超时,nginx分发到多台机器的问题

这个问题在复制测试集操作时被发现。原因是请求超时(60s)后,nginx将请求发到了每台服务器上。结果导致被处理了5次。
解决办法:在nginx.conf中增加配置:
#To void nginx timeout and proxy_pass to many machines,config this location
location ^~ /testsuites/move_and_copy {
proxy_pass http://single;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

请这些请求可能超时的请求路由到一台机器上即可。

分享到:
评论

相关推荐

    在RHEL上安裝設置ROR(nginx+passenger+ruby+rails+oracle+netzke)

    在RHEL(Red Hat Enterprise Linux)系统上搭建Ruby on Rails(简称RoR)应用程序环境是一项技术性较强的任务,尤其当涉及到与其他服务如Nginx、Phusion Passenger、Ruby、Rails以及Oracle数据库集成时。以下是对这...

    rvm nginx passenger rails配置服务器.docx

    3. **Passenger**:Passenger(又名Phusion Passenger)是一个方便且高效的Rails应用服务器模块,它可以无缝集成到Nginx中,简化Rails应用的部署和管理。 接下来,我们将按照以下步骤进行配置: ### 安装Passenger...

    基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0

    在构建高性能、高可用性的Web应用环境中,"基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0"的方案是一个常见的选择。这个方案结合了多种强大的工具和技术,以确保应用程序的稳定运行和高效管理。以下是这些关键...

    ruby on rails环境搭建学习笔记;passenger+nginx环境配置

    Passenger 是一款用于部署 Ruby 应用程序的 Web 服务器,它与 Nginx 结合使用时能提供高性能的服务。 ##### 安装 Passenger 1. **安装 Passenger:** ```sh gem install passenger ``` 2. **安装 Passenger ...

    rails-vagrant-starter:开始一个新的(和新鲜的)Rails + rbenv + Nginx +Passenger + Vagrant 项目所需的一切

    您需要与Vagrant和Chef一起启动一个新的Rails / Nginx / Passenger / Mysql项目。 只需克隆这个 repo,改变原点并输入vagrant up ###我要安装什么(和厨师一起)? Ruby 2.2.0 (rbenv) rails(最新的稳定版本)...

    rails-nginx-passenger-ubuntu, 关于如何在 Nginx 8.04服务器上启动和运行和乘客的说明.zip

    rails-nginx-passenger-ubuntu, 关于如何在 Nginx 8.04服务器上启动和运行和乘客的说明 rails-nginx-passenger-ubuntu我关于用 ubuntu 。Nginx 。乘客和mysql建立 Rails的简单制作服务器的笔记。别名echo"alias ll='...

    linux-在Ubuntu服务器上安装Rails生产环境的脚本

    4. **Nginx与Passenger**:为了部署Rails应用,通常会用到Web服务器如Nginx,并搭配Passenger模块,它可以方便地管理和运行Rails应用: ```bash sudo apt-get install -y nginx sudo apt-get install -y ...

    Ruby-極光Rails5專屬伺服器安裝包

    本安装包“Ruby-極光Rails5專屬伺服器安裝包”就是专为快速部署Rails 5应用程序而设计的,它包含了Nginx 1.10、Passenger 5和Ruby 2.3.1这三个关键组件。 1. **Ruby 2.3.1**: Ruby是一种面向对象的、动态类型的编程...

    利用Unicorn和Nginx部署Redmine

    标题中的“利用Unicorn和Nginx部署Redmine”指的是在服务器上安装并配置Redmine项目管理工具,通过Unicorn作为应用服务器,Nginx作为反向代理和负载均衡器,来提供高效、稳定的服务。这是一个常见的Web应用程序部署...

    passenger-3.0.9本地安装包

    Passenger,也称为ModRails,是一款高效且易于使用的Ruby应用程序服务器,尤其适合部署Rails应用。在本文中,我们将深入探讨如何在CentOS 5.4操作系统上通过Ruby Gem安装Passenger 3.0.9版本。为了确保顺利完成安装...

    passenger-3.0.11.tar.gz

    Passenger(也称为ModRails或Phusion Passenger)是一款强大的、易于使用的Web服务器和应用程序服务器,主要用于部署Ruby on Rails应用,但同时也支持其他语言如Node.js和Python。在本压缩包"passenger-3.0.11.tar....

    rails web server deploy guide

    通过以上步骤,你可以成功地将Rails应用部署到Web服务器上。这个过程涉及多个层次的技术细节,每个环节都需要谨慎对待,以确保应用的稳定性和安全性。记得在部署前进行充分的测试,以保证一切按预期运行。

    Red Hat Enterprise Linux 环境passenger多ruby版本共存部署

    总之,通过RVM和Passenger,你可以轻松地在Red Hat Enterprise Linux环境中管理多个Ruby版本,并针对每个Rails应用选择合适的Ruby版本进行部署。这不仅提高了灵活性,还能帮助你在维护多个项目时保持系统的稳定性和...

    ruby on rails

    5. **Web服务器**:Rails提供了内置的Webrick服务器用于开发,但在生产环境中,推荐使用如Puma、Unicorn或Nginx+Passenger等高性能服务器。 6. **开发工具**:如TextMate、Sublime Text、VS Code或Atom等文本编辑器...

    myplaceonline_posixcubes

    myplaceonline_posixcubes 使用posixcube.sh使用haproxy负载均衡器(前端),nginx + passenger Rails服务器(web),postgresql数据库(数据库)以及更多(elasticsearch,数据库备份,rsyslog服务器等)构建完整的...

    ansible-role-passenger:Ansible角色-Nginx乘客

    使用 `ansible-role-passenger`,你可以轻松地在多台服务器上部署和更新 Rails 应用,而无需手动配置 Nginx 和 Passenger。这大大提高了 DevOps 的效率,并降低了出错的可能性。通过 Ansible Galaxy(一个共享 ...

    Ruby on Rails实践

    在部署方面,Rails应用通常运行在如Passenger、Unicorn或Puma这样的服务器上,配合Nginx或Apache作为反向代理。Heroku、DigitalOcean和AWS等云平台为Rails应用提供了便捷的部署选项。 总的来说,Ruby on Rails实践...

    rails-passenger-postgres-ubuntu:在没有RVM或rbenv的Ubuntu 14.04上的Rails,PostgreSQL带Passenger + Nginx

    在没有RVM或rbenv的Ubuntu 14.04上的Rails,PostgreSQL带Passenger + Nginx ssh-copy-id -i ~/.ssh/id_rsa.pub root@SERVER scp rails-passenger-postgres-nginx root@SERVER:/root/rails-passenger-postgres-...

    基于C++和多种语言的mod_rails Phusion Passenger设计源码

    本项目是基于C++和多种语言的mod_rails Phusion Passenger设计源码,包含...这个项目是一个旨在从Apache和Nginx网页服务器上更便捷的部署Ruby on Rails项目的Apache模块,旨在简化Ruby on Rails项目的部署和维护过程。

Global site tag (gtag.js) - Google Analytics