- 浏览: 124740 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
sitoto:
git revert 和reset的区别这里讲一下git re ...
git的revert和reset和 git push -
sitoto:
If x is your column or vector:s ...
string.strip--去除字符串空格 -
xueluowuhen_1:
正好用到了 谢谢!
ruby的数据类型转换-字符串转整型 -
ChuanSu:
jkjjlkjkljkljlkjlkj
关于建站 -
ChuanSu:
[/main void {zhedoushi shenm yi ...
关于建站
先前的开发的Ruby on Rails网站使用的服务程序是Mongrel + Nginx, 现在用了Rails 3, 发现Mongrel对它有兼容问题, 所以要换一个。 虽然现在Phusion Passenger大行其道, 但使用前要重新编译Nginx。 为了避免重新安装nginx,我找到mongrel的替代品Unicorn。 没想到unicorn的设置非常方便。 我记录在这里供大家参考:
安装unicorn:
sudo gem install unicorn
创建网站配置文件(myproject是项目名称):
sudo mkdir /etc/unicorn
cd /etc/unicorn/
sudo nano /etc/unicorn/myproject.conf
内容如下:
RAILS_ROOT=/www/myproject
RAILS_ENV=production
在网站里再创建一个unicorn配置文件
nano /www/myproject/config/unicorn.rb
内容如下:
# Minimal sample configuration file for Unicorn (not Rack) when used
# with daemonization (unicorn -D) started in your working directory.
#
# See http://unicorn.bogomips.org/Unicorn/Configurator.html for complete
# documentation.
# See also http://unicorn.bogomips.org/examples/unicorn.conf.rb for
# a more verbose configuration using more features.
app_path = "/www/myproject"
listen 8080 # by default Unicorn listens on port 8080
worker_processes 2 # this should be >= nr_cpus
pid "#{app_path}/tmp/pids/unicorn.pid"
stderr_path "#{app_path}/log/unicorn.log"
stdout_path "#{app_path}/log/unicorn.log"
设置unicorn启动脚本:
sudo nano /etc/init.d/unicorn_init
脚本内容:
#!/bin/sh
#
# init.d script for single or multiple unicorn installations. Expects at least one .conf
# file in /etc/unicorn
#
# Modified by jay@gooby.org http://github.com/jaygooby
# based on http://gist.github.com/308216 by http://github.com/mguterl
#
## A sample /etc/unicorn/my_app.conf
##
## RAILS_ENV=production
## RAILS_ROOT=/var/apps/www/my_app/current
#
# This configures a unicorn master for your app at /var/apps/www/my_app/current running in
# production mode. It will read config/unicorn.rb for further set up.
#
# You should ensure different ports or sockets are set in each config/unicorn.rb if
# you are running more than one master concurrently.
#
# If you call this script without any config parameters, it will attempt to run the
# init command for all your unicorn configurations listed in /etc/unicorn/*.conf
#
# /etc/init.d/unicorn start # starts all unicorns
#
# If you specify a particular config, it will only operate on that one
#
# /etc/init.d/unicorn start /etc/unicorn/my_app.conf
set -e
sig () {
test -s "$PID" && kill -$1 `cat "$PID"`
}
oldsig () {
test -s "$OLD_PID" && kill -$1 `cat "$OLD_PID"`
}
cmd () {
case $1 in
start)
sig 0 && echo >&2 "Already running" && exit 0
echo "Starting"
$CMD
;;
stop)
sig QUIT && echo "Stopping" && exit 0
echo >&2 "Not running"
;;
force-stop)
sig TERM && echo "Forcing a stop" && exit 0
echo >&2 "Not running"
;;
restart|reload)
sig USR2 && sleep 5 && oldsig QUIT && echo "Killing old master" `cat $OLD_PID` && exit 0
echo >&2 "Couldn't reload, starting '$CMD' instead"
$CMD
;;
upgrade)
sig USR2 && echo Upgraded && exit 0
echo >&2 "Couldn't upgrade, starting '$CMD' instead"
$CMD
;;
rotate)
sig USR1 && echo rotated logs OK && exit 0
echo >&2 "Couldn't rotate logs" && exit 1
;;
*)
echo >&2 "Usage: $0 "
exit 1
;;
esac
}
setup () {
echo -n "$RAILS_ROOT: "
cd $RAILS_ROOT || exit 1
export PID=$RAILS_ROOT/tmp/pids/unicorn.pid
export OLD_PID="$PID.oldbin"
CMD="/usr/bin/unicorn_rails -c config/unicorn.rb -E $RAILS_ENV -D"
}
start_stop () {
# either run the start/stop/reload/etc command for every config under /etc/unicorn
# or just do it for a specific one
# $1 contains the start/stop/etc command
# $2 if it exists, should be the specific config we want to act on
if [ $2 ]; then
. $2
setup
cmd $1
else
for CONFIG in /etc/unicorn/*.conf; do
# import the variables
. $CONFIG
setup
# run the start/stop/etc command
cmd $1
done
fi
}
ARGS="$1 $2"
start_stop $ARGS
注意将里面的/usr/bin/unicorn_rails 换成你系统中unicorn_rails程序的实际路径。
设置unicorn_init文件属性:
sudo chmod 755 /etc/init.d/unicorn_init
启动unicorn:
/etc/init.d/unicorn_init
修改nginx的配置文件,加入unicorn的代理设置:
upstream myproject_mongrel {
server 127.0.0.1:8080 fail_timeout=0;
}
这部分跟使用mongrel的类似的。
这样unicorn的设置就完成了。 刚设置好,感觉unicorn跟mongrel一样, 都是比较吃内存的, 一启动就占了50M. 不知道会不会也像mongrel一样把内存吃爆, 会得话得设置监控软件(如god)看住它。
http://www.cslog.cn/Content/unicorn-for-ruby-on-rails/
安装unicorn:
sudo gem install unicorn
创建网站配置文件(myproject是项目名称):
sudo mkdir /etc/unicorn
cd /etc/unicorn/
sudo nano /etc/unicorn/myproject.conf
内容如下:
RAILS_ROOT=/www/myproject
RAILS_ENV=production
在网站里再创建一个unicorn配置文件
nano /www/myproject/config/unicorn.rb
内容如下:
# Minimal sample configuration file for Unicorn (not Rack) when used
# with daemonization (unicorn -D) started in your working directory.
#
# See http://unicorn.bogomips.org/Unicorn/Configurator.html for complete
# documentation.
# See also http://unicorn.bogomips.org/examples/unicorn.conf.rb for
# a more verbose configuration using more features.
app_path = "/www/myproject"
listen 8080 # by default Unicorn listens on port 8080
worker_processes 2 # this should be >= nr_cpus
pid "#{app_path}/tmp/pids/unicorn.pid"
stderr_path "#{app_path}/log/unicorn.log"
stdout_path "#{app_path}/log/unicorn.log"
设置unicorn启动脚本:
sudo nano /etc/init.d/unicorn_init
脚本内容:
#!/bin/sh
#
# init.d script for single or multiple unicorn installations. Expects at least one .conf
# file in /etc/unicorn
#
# Modified by jay@gooby.org http://github.com/jaygooby
# based on http://gist.github.com/308216 by http://github.com/mguterl
#
## A sample /etc/unicorn/my_app.conf
##
## RAILS_ENV=production
## RAILS_ROOT=/var/apps/www/my_app/current
#
# This configures a unicorn master for your app at /var/apps/www/my_app/current running in
# production mode. It will read config/unicorn.rb for further set up.
#
# You should ensure different ports or sockets are set in each config/unicorn.rb if
# you are running more than one master concurrently.
#
# If you call this script without any config parameters, it will attempt to run the
# init command for all your unicorn configurations listed in /etc/unicorn/*.conf
#
# /etc/init.d/unicorn start # starts all unicorns
#
# If you specify a particular config, it will only operate on that one
#
# /etc/init.d/unicorn start /etc/unicorn/my_app.conf
set -e
sig () {
test -s "$PID" && kill -$1 `cat "$PID"`
}
oldsig () {
test -s "$OLD_PID" && kill -$1 `cat "$OLD_PID"`
}
cmd () {
case $1 in
start)
sig 0 && echo >&2 "Already running" && exit 0
echo "Starting"
$CMD
;;
stop)
sig QUIT && echo "Stopping" && exit 0
echo >&2 "Not running"
;;
force-stop)
sig TERM && echo "Forcing a stop" && exit 0
echo >&2 "Not running"
;;
restart|reload)
sig USR2 && sleep 5 && oldsig QUIT && echo "Killing old master" `cat $OLD_PID` && exit 0
echo >&2 "Couldn't reload, starting '$CMD' instead"
$CMD
;;
upgrade)
sig USR2 && echo Upgraded && exit 0
echo >&2 "Couldn't upgrade, starting '$CMD' instead"
$CMD
;;
rotate)
sig USR1 && echo rotated logs OK && exit 0
echo >&2 "Couldn't rotate logs" && exit 1
;;
*)
echo >&2 "Usage: $0 "
exit 1
;;
esac
}
setup () {
echo -n "$RAILS_ROOT: "
cd $RAILS_ROOT || exit 1
export PID=$RAILS_ROOT/tmp/pids/unicorn.pid
export OLD_PID="$PID.oldbin"
CMD="/usr/bin/unicorn_rails -c config/unicorn.rb -E $RAILS_ENV -D"
}
start_stop () {
# either run the start/stop/reload/etc command for every config under /etc/unicorn
# or just do it for a specific one
# $1 contains the start/stop/etc command
# $2 if it exists, should be the specific config we want to act on
if [ $2 ]; then
. $2
setup
cmd $1
else
for CONFIG in /etc/unicorn/*.conf; do
# import the variables
. $CONFIG
setup
# run the start/stop/etc command
cmd $1
done
fi
}
ARGS="$1 $2"
start_stop $ARGS
注意将里面的/usr/bin/unicorn_rails 换成你系统中unicorn_rails程序的实际路径。
设置unicorn_init文件属性:
sudo chmod 755 /etc/init.d/unicorn_init
启动unicorn:
/etc/init.d/unicorn_init
修改nginx的配置文件,加入unicorn的代理设置:
upstream myproject_mongrel {
server 127.0.0.1:8080 fail_timeout=0;
}
这部分跟使用mongrel的类似的。
这样unicorn的设置就完成了。 刚设置好,感觉unicorn跟mongrel一样, 都是比较吃内存的, 一启动就占了50M. 不知道会不会也像mongrel一样把内存吃爆, 会得话得设置监控软件(如god)看住它。
http://www.cslog.cn/Content/unicorn-for-ruby-on-rails/
发表评论
-
mysql2安装错误
2013-08-08 13:22 694administrator@ubuntu:~/store$ g ... -
Capistrano deploy ** Host key verification failed
2012-07-13 20:44 1070Known Hosts bug If you are not ... -
nginx deploy.rb
2012-06-12 11:46 0http://library.linode.com/web-s ... -
cap deploy
2012-06-12 11:18 0问题描述:cap deploy 部署最后提示错误: s ... -
Ubuntu上Mysql数据库文件备份问题
2012-06-03 13:41 0数据库文件默认放在:/var/lib/mysql 这个路径可以 ... -
ubuntu安装nokogiri错误
2012-05-30 19:34 834gem install nokogiri 提示错误,冒失一些 ... -
ubuntu安装mongodb
2012-05-29 19:14 0sudo apt-get install mongodb 配 ... -
Adding users to sudoers through shell script
2012-05-27 15:24 704You could simply echo (with ele ... -
mysql2安装失败in ubuntu
2012-05-27 16:39 821> gem install mysql2 Buildi ... -
ubuntu安装mysql-server
2012-05-26 15:46 804一。mysql安装 >sudo apt-get ins ... -
Ubuntu putty 的复制与粘贴
2012-05-26 12:48 1124在Ubuntu下经常用putty,老是为这个复制粘贴的事情 ... -
phusion passenger standalone
2012-05-26 13:04 917为了测试这个 passenger 先 放个项目 上去。 ... -
ubuntu下普通用户app 下的rvm安装
2012-05-26 11:01 889准备: 安装 curl :sudo apt-get in ... -
ubuntu下root用户下的rvm安装
2012-05-26 10:49 1786声明:我是使用root 帐户安装的。。安装的是 多用户,所以直 ... -
ubuntu 配置详解
2012-05-26 09:28 0ubuntu新建帐户 :并加入到 sudoers里面。 su ... -
sqlite3-ruby gem can't find sqlite3.h on ubuntu
2012-05-25 18:34 836sqlite3-ruby gem can't find sql ... -
ImageMagick in ubuntu
2012-05-23 15:04 760ImageMagick is a powerful suite ... -
【Vim编程】如何去掉 修改文件后系统会自动生成的一个带~的备份文件
2012-05-20 16:20 1026怎么让Vim不自动生成这些备份文件呢? 1. 找到你的Vi ... -
Rails server Error:Address already in use
2012-05-17 19:21 1648Hi, For some reason ... -
Redis配置和启动【转】
2012-05-17 17:17 809启动redis时候提示: ARE YOU SU ...
相关推荐
在部署方面,Rails应用通常运行在如Passenger、Unicorn或Puma这样的服务器上,配合Nginx或Apache作为反向代理。Heroku、DigitalOcean和AWS等云平台为Rails应用提供了便捷的部署选项。 总的来说,Ruby on Rails实践...
9. 布署与服务器配置:Rails应用通常部署在如Heroku、AWS或DigitalOcean等云平台上,使用Nginx或Apache作为反向代理,Passenger、Puma或Unicorn作为应用服务器。 10. 性能优化:Rails应用可以通过缓存、数据库索引...
2. **Ruby编写**: 作为纯Ruby实现的服务器,Mongrel与Rails框架集成紧密,减少了中间层带来的额外复杂性。 3. **轻量级**: Mongrel体积小巧,启动快速,适合开发和测试环境。 ** 安装Mongrel ** 在Rails项目中安装...
4. **性能**:虽然不如Java或C++,但通过优化和使用如Puma、Unicorn等服务器,Rails应用也能有较好的性能表现。 这个简单的blog项目是初学者了解Rails的好起点,通过实践,可以掌握Rails的基本用法,进一步深入学习...
5. **Web服务器**:Rails提供了内置的Webrick服务器用于开发,但在生产环境中,推荐使用如Puma、Unicorn或Nginx+Passenger等高性能服务器。 6. **开发工具**:如TextMate、Sublime Text、VS Code或Atom等文本编辑器...
3. **Mongrel**:Mongrel是Ruby Web服务器,专门设计用于运行Rails应用。它能快速解析Ruby代码,提供高效的HTTP服务。然而,由于不再活跃维护,现在更多地被Passenger或Unicorn等其他服务器代替,但在本场景中,...
在 Heroku 上使用 Puma Web 服务器的 Ruby on Rails 使用部署在Puma Web 服务器的示例 Ruby on Rails 应用程序。 2015 年 1 月 23 日,Heroku 宣布 Puma 为推荐的 Ruby Web 服务器。 来自: Heroku 现在推荐使用 ...
虽然现代Rails应用更多地使用如Puma、Unicorn或Passenger等服务器,但理解Mongrel的运作机制仍然是提升开发者技能的一个方面。通过阅读这本书,你可以深入理解Web服务器的工作原理,这对于优化任何Web应用的性能都是...
最后,应用部署可以选择Heroku、AWS或自建服务器,Rails应用通常配合Unicorn或Puma服务器运行。定期更新和维护是必不可少的,包括数据库迁移、错误监控和性能优化。 以上是根据“shop:使用Ruby On Rails购买回购”...
### Wrox Professional Ruby on Rails (Feb 2008) #### 概述 《Wrox Professional Ruby on Rails》是一本面向中级到高级Rails程序员的专业书籍。本书假设读者已经熟悉Ruby语言,并通过阅读入门级的Rails书籍或通过...
安装Brimir是一个相当简单的Ruby on Rails应用程序。 进行设置的唯一困难是如何使收到的电子邮件正常工作。 有关详细信息,请参见下一部分。 任何Rails应用程序都首先需要具有Ruby支持的Web服务器。 我们自己使用...
完成开发后,可以将Rails应用部署到云服务提供商如Heroku,或者自建服务器上,如使用Nginx+Passenger、Puma或Unicorn等Web服务器。 通过深入研究`rails_sample_app`,你可以了解Rails的每个组件是如何协同工作的,...
标题“rails_comp_book:预订计算机硬件”暗示了这是一个关于如何为使用Ruby on Rails 4.2.2、Ruby 1.9.3和PostgreSQL数据库的项目选择适当硬件的指南。让我们深入探讨相关知识点: 1. **Ruby on Rails 4.2.2**:这...
在本文中,我们将深入探讨如何在Linux系统上配置一套高性能的Web开发环境,即Nginx、Ruby on Rails和MySQL的集成。这个配置方案被广泛推荐,特别是对于需要高效能和稳定性的Web应用。 首先,我们来安装RVM(Ruby ...
标题 "rails 部署 nginx" 涉及到的是在Web开发中使用Ruby on Rails框架结合Nginx服务器进行应用部署的相关知识。Nginx以其高性能、稳定性以及反向代理和负载均衡能力,常被用作Rails应用的前端服务器。下面将详细...
Ruby作为Rails的基础,是一种动态、面向对象的编程语言,以其简洁和表达性强而闻名。在Ruby中,代码通常更加可读和易于理解,这使得开发者能够快速构建功能丰富的应用程序。Ruby on Rails充分利用了Ruby的优点,提供...