nginx + unicorn 部署rails项目

nginx + unicorn  部署 rails 项目,顾名思义要先安装nginx和unicorn

一 安装

安装nginx: sudo apt-get install nginx

安装unicorn: gem install unicorn

二 配置

1 在你项目的config文件夹下添加一个unicorn.rb文件,添加代码(样列:http://unicorn.bogomips.org/examples/unicorn.conf.rb)

我的如下:

 1 module Rails
 2   class << self
 3     def root
 4       File.expand_path(__FILE__).split("/")[0..-3].join("/")
 5     end
 6   end
 7 end
 8
 9 preload_app true
10 working_directory Rails.root
11 pid "#{Rails.root}/tmp/pids/unicorn.pid"
12 stderr_path "#{Rails.root}/log/unicorn.log"
13 stdout_path "#{Rails.root}/log/unicorn.log"
14
15

16 worker_processes 2
17 timeout 30
18
19 GC.respond_to?(:copy_on_write_friendly=) and
20   GC.copy_on_write_friendly = true
21
22 before_fork do |server, worker|
23   defined?(ActiveRecord::Base) and
24     ActiveRecord::Base.connection.disconnect!
25 end
26
27 after_fork do |server, worker|
28   defined?(ActiveRecord::Base) and
29     ActiveRecord::Base.establish_connection
30 end

2 配置nginx

sudo apt-get install nginx默认安装在/etc/nginx目前下

在/etc/nginx/conf.d目录下创建文件:project_name.conf 添加代码(样例: http://unicorn.bogomips.org/examples/nginx.conf )

我的如下:

 1 upstream project_name_backend {
 2   server unix:/path_to_project/tmp/sockets/unicorn.project-name.sock fail_timeout=0;
 3 }
 4
 5 server {
 6   listen 80;
 7   server_name localhost;
 8   root /path_to_project/public;
 9
10   location ^~ /assets/ {
11     gzip_static on;
12     expires max;
13     add_header Cache-Control public;
14   }
15
16   try_files $uri/index.html $uri @unicorn;
17   location @unicorn {
18     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
19     proxy_set_header Host $http_host;
20     proxy_redirect off;
21     proxy_pass http://project_name_backend;
22   }
23
24   error_page 500 502 503 504 /500.html;
25   client_max_body_size 4G;
26   keepalive_timeout 10;
27 }

注意:

1

listen "#{Rails.root}/tmp/sockets/unicorn.project-name.sock", :backlog => 64
upstream project_name_backend {
    server unix:/path_to_project/tmp/sockets/unicorn.project-name.sock fail_timeout=0;
  }

这两个的unicorn.project-name.sock的路径必须是一致的!!!

2

upstream project_name_backend 这里的project_name_backend 和 proxy_pass http://project_name_backend; 这里的project_name_backend是一致的!!!

nginx + unicorn 部署rails项目,布布扣,bubuko.com

时间: 2024-12-28 11:35:46

nginx + unicorn 部署rails项目的相关文章

nginx+unicorn部署ruby web环境

最近接手了一个ruby的web项目,由于之前没有接触过ruby以及相关的web开发,而且项目当中文档缺失,所以在部署该项目的时候很是走了一些弯路.最后参照多篇ruby on rails的开发环境部署,以及学习了下ruby当中的gem/bundler等的关系,成功部署项目.在这儿记一下,算是一个小的总结,也可以对ruby web开发刚入门部署环境时提供一个参照. 我们的项目是基于padrino,如果是基于rails的项目,部署应该也是差不多的. 1.安装ruby 由于系统中可能有多个ruby相关的

结合Nginx+Uwsgi部署Django项目

大致想法以及背景: 刚开始创建Django项目,可以通过runserver命令更方便地调试程序,但是如果当一个项目完成了之后,需要部署到真正的环境,就需要考虑其稳定性.之前在写毕设的时候,写过一个自动化运维监控的项目,部署在自己的阿里云服务器上.那时候没啥经验,直接一个(pyhon runserver 0.0.0.0:8888 &)让项目在后台自己跑.所以对一些项目挂掉,数据库连接失败等问题不能够及时定位解决.所以现在花点时间结合Nginx+Uwsgi部署自己的项目,利用Nginx处理静态资源请

使用Nginx+uWSGI部署Django项目

1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi ln -s /usr/local/python3/bin/uwsgi /usr/local/bin/uwsgi #建立软链接 uwsgi --version #检查安装成功 3.基于uwsgi+django项目部署 django项目目录结构(orange_manage为app): uwsgi --ht

nginx+uwsgi部署django项目

操作可参考http://www.linuxyw.com/353.html (nginx+uwsgi+django+python环境部署文档) 这里只说明几点我的配置 环境: Nginx版本:1.7.9 Django版本: 1.6.8 Python版本:2.7.5 Uwsgi版本:2.0.9 安装MySQL-python: 最好源码安装,yum install -y MySQL-python可能因为路径问题import MySQLdb失败,下载地址: http://sourceforge.net/

生产环境使用Nginx+uwsgi部署Diango项目

环境:CentOS6.5 + Nginx1.11.5 + Python3.5.2 1. 安装基础软件包 yum install -y zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel  2. 安装Python3.5.2版本 源码包下载,戳我 wget https://www.python.org/ftp/python/3.5.2/Python-3.5

利用docker中的nginx镜像部署angular项目

1.进入angular项目下的src文件加下:在命令行中执行:ng build --prod --aot 2.将生成的dist文件,通过Xftp传到服务器中 3.修改权限 4.进入到dist文件夹下的t-app文件夹下,执行dockers run命令 原文地址:https://www.cnblogs.com/MyUniverse/p/11288977.html

基于nginx和uWSGI在Ubuntu系统上部署Django项目

1. nginx1.1 安装sudo apt-get install nginx1.2启动.停止和重启sudo /etc/init.d/nginx startsudo /etc/init.d/nginx stopsudo /etc/init.d/nginx restart或者sudo service nginx startsudo service nginx stopsudo service nginx restart2. uWSGI安装用python的pip安装最简单:apt-get inst

部署Django项目Nginx + uwsgi

记录一下使用Nginx + uwsgi部署Django项目 关于域名和端口 在这个教程中,我们将假设你的域名为 example.com .用你自己的FQDN或者IP地址来代替. 从头到尾,我们将使用8000端口作为web服务器的公开端口,就像Django runserver默认的那样.当然,你可以使用任何你想要的端口,但是我已经选了这个,因此,它不会与web服务器可能已经选择的任何端口冲突. 基本的uWSGI安装和配置 把uWSGI安装到你的virtualenv中 pip install uws

nginx unicorn 来运行rails

一.安装nginx sudo apt-get install nginx 安装完成后查看一下:nginx -v 说明安装成功. ubuntu系统里的安装目录是在/etc/nginx/下,启动程序文件在/usr/sbin/nginx 二.新建项目 rails new app --skip-bundle 完成后修改Gemfile文件:vim Gemfile 把source 修改成taobao或者ruby-china的源. 在这个文件里加入:gem 'unicorn' 然后运行:bundle inst