Ruby on Rails是一个流行的快速开发Web框架,网页设计师和开发人员可以借助它使用Ruby编程语言实现功能齐全的动态Web应用程序。 本文介绍使用Unicorn部署Ruby on Rails和在Ubuntu 14.04上部署Nginx Web服务器。
安装必要软件包
使用以下命令更新系统的存储库数据库和安装的软件包:
- apt-get update
- apt-get upgrade
安装Ruby
1.安装Ruby依赖
- sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev nodejs
2.下载最新版本的Ruby。
- wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz
3.解压
- tar -xzvf ruby-2.3.0.tar.gz
4.切换目录
5.编译安装
- ./configure
- make
- sudo make install
安装并创建一个Rails应用
1.使用gem(Ruby的包管理框架)在服务器上安装Rails:
2.切换到家目录
3.创建一个新的Rails项目。 使用example作为项目名称:
4.切换到项目目录
安装配置Unicorn
1.使用gem在服务器上安装Unicorn:
2.创建文件config/unicorn.rb,其中包含unicorn配置,并将以下配置粘贴到文件中。
/home/username/example/config/unicorn.rb:
- # set path to the application
- app_dir git File.expand_path("../..", __FILE__)
- shared_dir = "#{app_dir}/shared"
- working_directory app_dir
-
- # Set unicorn options
- worker_processes 2
- preload_app true
- timeout 30
-
- # Path for the Unicorn socket
- listen "#{shared_dir}/sockets/unicorn.sock", :backlog => 64
-
- # Set path for logging
- stderr_path "#{shared_dir}/log/unicorn.stderr.log"
- stdout_path "#{shared_dir}/log/unicorn.stdout.log"
-
- # Set proccess id path
- pid "#{shared_dir}/pids/unicorn.pid"
3.现在,创建Unicorn配置文件中涉及到的目录:
- mkdir -p shared/pids shared/sockets shared/log
安装配置Nginx
1.安装Nginx
- sudo apt-get install nginx
2.我们需要配置nginx作为反向代理。 编辑配置文件/etc/nginx/nginx.conf并将以下配置粘贴到HTTP块中:
- upstream rails {
- # Path to Unicorn socket file
- server unix:/home/username/example/shared/sockets/unicorn.sock fail_timeout=0;
- }
3.删除默认的nginx站点配置:
- sudo rm /etc/nginx/sites-enabled/default
4.为Rails应用程序创建新的nginx站点配置文件:
/etc/nginx/sites-available/example:
- server {
- listen 80;
- server_name localhost;
-
- root /home/username/example;
-
- try_files $uri/index.html $uri @rails;
-
- location @rails {
- proxy_pass http://rails;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header Host $http_host;
- proxy_redirect off;
- }
-
- error_page 500 502 503 504 /500.html;
- client_max_body_size 4G;
- keepalive_timeout 10;
- }
5.创建指向nginx sites-enabled目录的软链接以启用站点配置文件:
- sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled
6.重启Nginx
- sudo service nginx restart
启动Unicorn
以开发环境模式启动Unicorn:
- sudo unicorn -c config/unicorn.rb -E development -D
以生产环境模式启动Unicorn:
- sudo unicorn -c config/unicorn.rb -E production -D
要停止Unicorn,请执行以下命令: