前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Unicorn和Nginx在Ubuntu 14.04上配置Ruby on Rails应用程序

使用Unicorn和Nginx在Ubuntu 14.04上配置Ruby on Rails应用程序

作者头像
LPD6375
发布2018-08-29 13:17:54
6.9K0
发布2018-08-29 13:17:54

Ruby on Rails 是一个流行的 Web 应用程序框架,允许开发人员创建动态 Web 应用程序。本指南介绍如何在 Ubuntu 14.04 上使用Unicorn和 nginx 在服务器上部署Rails应用程序。

Unicorn 是一个 HTTP 服务器,就像 Passenger 或 Puma 一样。由于用户不能直接访问 Unicorn,我们将使用 nginx 作为反向代理,它将缓冲用户和 Rails 应用程序之间的请求和响应。

在你开始之前

在开始本指南之前,请确保已阅读并完成了 入门服务器防护指南。

注意 本指南是为非 root 用户编写的。需要提升权限的命令带有前缀sudo。如果您不熟悉该sudo命令,可以查看我们的 用户和组 指南。

1.在安装任何软件包之前,请确保您的主机名正确无误:

代码语言:txt
复制
hostname hostname -f

2.确保您的系统是最新的:

代码语言:txt
复制
sudo apt-get update && apt-get upgrade

安装 Ruby

1.安装 Ruby 依赖项:

代码语言:txt
复制
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。在撰写本文时,当前,最新和稳定版本是2.3,但您可以在此处查看最新版本:

代码语言:txt
复制
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz

3.解压缩 tarball:

代码语言:txt
复制
tar -xzvf ruby-2.3.0.tar.gz

4.移至解压缩的目录:

代码语言:txt
复制
cd ruby-2.3.0

5.从源代码配置和安装 Ruby:

代码语言:txt
复制
./configure make sudo make install

安装并创建 Rails 应用程序

  1. 使用gem( Ruby 的包管理框架)在服务器上安装Rails :
代码语言:txt
复制
sudo gem install rails
  1. 在创建项目之前,请转到主目录:
代码语言:txt
复制
cd 
  1. example 命名新建一个 Rails 项目。
代码语言:txt
复制
rails new examplecd example
  1. 进入项目目录
代码语言:txt
复制
cd example

安装和配置 Unicorn

  1. 使用gem以下命令在服务器上安装 Unicorn :
代码语言:txt
复制
sudo gem install unicorn
  1. 创建config/unicorn.rb包含 unicorn 配置的文件,并将以下配置粘贴到文件中。
代码语言:txt
复制
# 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"
  1. 创建一个新的 Rails 项目。您将example用作项目名称:
代码语言:txt
复制
rails
  1. 移动到项目目录:
代码语言:txt
复制
cd example

现在,创建 Unicorn 配置文件中提到的目录:

代码语言:txt
复制
mkdir -p shared/pids shared/sockets shared/log

注意 请注意,我们仍然在 Rails 应用程序目录中。

安装和配置 Nginx

  1. 安装 nginx:
代码语言:txt
复制
sudo apt-get install nginx
  1. 我们需要配置 nginx 作为反向代理。编辑配置文件/etc/nginx/nginx.conf并将以下配置粘贴到 HTTP 块中:
代码语言:txt
复制
/etc/nginx/nginx.conf
upstream rails {
# Path to Unicorn socket file
server unix:/home/username/example/shared/sockets/unicorn.sock fail\_timeout=0;
}     

注意 使用适当的值编辑usernameexample

  1. 删除默认的 nginx 站点配置:
代码语言:txt
复制
sudo rm /etc/nginx/sites-enabled/default
  1. 为 Rails 应用程序创建新的 nginx 站点配置文件:
代码语言:txt
复制
/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;
}

注意 确保使用合适的用户名示例。

  1. 创建一个符号链接到 nginx 的sites-enabled目录以启用您的站点配置文件:
代码语言:txt
复制
sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled
  1. 重启 nginx:
代码语言:txt
复制
sudo service nginx restart

启动 Unicorn

要在开发环境中启动 Unicorn

代码语言:txt
复制
sudo unicorn -c config/unicorn.rb -E development -D

要在生产环境中启动 Unicorn:

代码语言:txt
复制
sudo unicorn -c config/unicorn.rb -E production -D

注意 确保您在应用程序目录中; 否则,您需要输入整个路径名。

要停止 Unicorn,使用以下命令

代码语言:txt
复制
sudo pkill unicorn

更多信息

有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在你开始之前
  • 安装 Ruby
  • 安装并创建 Rails 应用程序
    • 安装和配置 Unicorn
    • 安装和配置 Nginx
    • 启动 Unicorn
    • 更多信息
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档