`
belmount
  • 浏览: 49120 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

rails 3 thin nginx 部署

 
阅读更多

本着日行一善的原则,今天把直接thin 跑的rails 3 站点部署到nginx上了。

最初的想法使用passenger和ree+nginx,结果可耻的失败了,原因和gems的load路径有关系,把load_path解决了,结果说正常的程序有问题。本着拿得起放的下的原则,放弃使用passenger,决定采用thin。

我的系统是rhel 5

先装nginx,

通过 cat /etc/*release 查看到rhel的版本,

然后通过新建/etc/yum.repos.d/nginx.repo文件添加nginx的rpm source

写道
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/
gpgcheck=0
enabled=1

 其中$releasever和rhel的版本对应,我这里填5

 

 

然后将thin安装成服务

$thin install

这会将在/etc/rc.d下添加thin的服务

如果直接service start thin 会报错

因为在rhel下实际上是使用的/etc/rc.d/init.d 所以要

$mv /etc/rc.d/thin /etc/rc.d/init.d

然后

$ thin config -C /etc/thin/<appname>.yml -c /var/rails/<appdir> --servers 3 --socket /tmp/thin.appname.sock


配置app的config文件

 

如果使用了rvm务必需产生 rvm wrapper

命令如下

$ rvm wrapper 1.9.2 bootup thin

同时更改 /etc/rc.d/init.d下的thin 文件,将DAEMON文件指向wrapper

DAEMON=/usr/local/rvm/wrappers/ruby-1.9.2/thin

service thin start

thin 就OK了。

 

配置nginx.conf

user nginx;
# user 很重要,要和你的app的用户和用户组一致,否则出现403错误
worker_processes 5;

error_log /var/log/nginx.error.log;
pid /var/run/nginx.pid;

events {
  worker_connections 1024;
}

http {
  include mime.types;
  default_type application/octet-stream;

  log_format main '$remote_addr - $remote_user [$time_local] $request '
                      '"$status" $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

  access_log /var/log/nginx.access.log main;

  sendfile on;

  keepalive_timeout 65;

  upstream thin_cluster {
    server unix:/tmp/thin.0.sock;
    server unix:/tmp/thin.1.sock;
    server unix:/tmp/thin.2.sock;
    server unix:/tmp/thin.3.sock;
    server unix:/tmp/thin.4.sock;
  }

  server {
    listen 80;
    server_name www.myserver.com;

    root /var/rails/mysapp/public;#对应app path,务必要指向public 文件夹为止

    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect false;

      if (-f $request_filename/index.html) {
        rewrite (.*) $1/index.html break;
      }
      if (-f $request_filename.html) {
        rewrite (.*) $1.html break;
      }
      if (!-f $request_filename) {
        proxy_pass http://thin_cluster;
        break;
      }
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
      root html;
    }
  }
}
 

然后

nginx -s reload,

大功告成。

 

 

分享到:
评论

相关推荐

    rails 部署 nginx

    标题 "rails 部署 nginx" 涉及到的是在Web开发中使用Ruby on Rails框架结合Nginx服务器进行应用部署的相关知识。Nginx以其高性能、稳定性以及反向代理和负载均衡能力,常被用作Rails应用的前端服务器。下面将详细...

    利用Unicorn和Nginx部署Redmine

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

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

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

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

    通过以上步骤,可以完成 Ruby on Rails 开发环境的基本搭建,并且能够使用 Passenger+Nginx 进行高效部署。对于初学者而言,这一系列的操作可能会有些复杂,但随着实践的增多,这些步骤会变得越来越熟悉。同时,在...

    艰难完成 nginx + puma 部署 rails 4的详细记录

    花了两周时间 Google 部署方法,找的的许多方法都没有用,最终被我用控制变量法,一条一条修改配置文件修改成功了。 首先是 /etc/nginx/vhosts/limlog.sloger.info.conf 和 config/puma.rb # # /etc/nginx/vhosts/...

    rvm nginx passenger rails配置服务器.docx

    如果需要切换Rails版本,可以使用`rvm use 1.9.3@rails3`命令,然后再次确认`passenger_ruby`的正确路径,可以通过`passenger-config --ruby-command`获取。 ### 重启Nginx 最后,使用`/opt/nginx/sbin/nginx`命令...

    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='...

    Ruby-wechatstarter微信开发模版支持Rails5和一键部署到Heroku

    wechat-starter:微信开发模版,支持 Rails 5 和一键部署到 Heroku

    Rails 3 in Action

    《Rails 3 in Action》不仅覆盖了Rails 3.1的核心概念和技术,还涵盖了从开发到部署的全过程,是Rails开发者不可或缺的参考书籍。通过阅读这本书,开发者可以深入理解Rails的工作原理,提升开发技能,并学会构建高效...

    ruby on rails 3 tutorial.pdf

    最后,你会了解到如何部署你的Rails应用到生产环境,如Heroku或者AWS等云服务提供商,以及如何进行应用的日常维护和更新。 通过阅读《Ruby on Rails 3 Tutorial》,你不仅能够掌握Ruby on Rails的基本知识,还能...

    升级gitlab中nginx版本.docx

    GitLab系统主要由GitLab Rails应用程序、NginxWeb服务器和数据库组成。其中,Nginx是GitLab系统的Web服务器,负责处理HTTP请求和提供静态资源。 二、安装Nginx 为升级GitLab系统中的Nginx版本,需要首先安装系统...

    suspenders, 带有标准缺省值的Rails 模板,可以部署到 Heroku.zip

    suspenders, 带有标准缺省值的Rails 模板,可以部署到 Heroku 吊杆是在thoughtbot服务器上使用的基本的Rails 应用程序。 安装首先安装吊杆 gem:gem install suspenders然后运行:suspenders projectnam

    ansible-rails:使用Ansible部署Ruby on Rails-使用Lets Encrypt,Sidekiq,PostgreSQL,nginx和puma

    本篇文章将详细探讨如何使用Ansible部署一个基于Ruby on Rails的应用,该应用集成了Lets Encrypt(用于SSL证书)、Sidekiq(后台任务处理)、PostgreSQL(数据库服务)、nginx(反向代理)和puma(Web服务器)。...

    ruby_on_rails安装部署指导手册

    ### Ruby on Rails 安装与部署知识要点 #### 一、前言 在进行 Ruby on Rails 的安装与部署过程中,我们需要关注几个核心方面:系统版本兼容性、软件依赖包的选择与安装、Ruby 语言环境的配置以及 Rails 应用的具体...

    Rails3常用命令行命令

    Rails3 是 Ruby on Rails 框架的一个版本,它提供了一系列强大的命令行工具,使得开发者可以快速地构建和管理Web应用。在本文中,我们将深入探讨Rails3中的常用命令,帮助你更高效地进行开发工作。 首先,新建一个...

    基于Ubuntu Nginx Mongrel Mysql部署rails

    博文链接:https://swachian.iteye.com/blog/175033

Global site tag (gtag.js) - Google Analytics