Ruby企业版与Capistrano部署案例
立即解锁
发布时间: 2025-08-20 02:35:33 阅读量: 7 订阅数: 3 

# Ruby企业版与Capistrano部署案例
## 1. 使用Ruby企业版
### 1.1 简介
Ruby企业版(REE)是面向服务器的官方Ruby解释器发行版,它基于标准的C Ruby 1.8.7解释器,在垃圾回收、内存分配、调试和线程子系统方面有所改进。使用REE的应用程序相比标准Ruby解释器,内存使用量更少。
### 1.2 安装与配置
以下是安装和配置REE并设置Passenger使用它的步骤:
1. 准备一个没有安装Ruby的新虚拟机:
```bash
$ cd ~/deployingrails/ && mkdir vagrant_ree
$ cd vagrant_ree/
$ vagrant init lucid64
$ vagrant up
$ vagrant ssh
```
2. 更新系统并安装必要的依赖:
```bash
vm $ sudo apt-get update
vm $ sudo apt-get install build-essential zlib1g-dev libssl-dev libreadline-dev \
git-core curl libyaml-dev libcurl4-dev libsqlite3-dev -y
vm $ sudo rm -rf /opt/vagrant_ruby
```
3. 安装Apache:
```bash
vm $ sudo apt-get install apache2 apache2-dev -y
```
4. 使用curl下载最新版本的REE:
```bash
vm $ curl --remote-name \
http://rubyenterpriseedition.googlecode.com/\
/files/ruby-enterprise-1.8.7-2012.02.tar.gz
```
5. 解压并运行安装程序:
```bash
vm $ tar -zxf ruby-enterprise-1.8.7-2012.02.tar.gz
vm $ cd ruby-enterprise-1.8.7-2012.02
vm $ sudo ./installer
```
6. 检查安装是否成功:
```bash
vm $ /opt/ruby-enterprise-1.8.7-2012.02/bin/ruby -v
```
7. 查看已安装的gem:
```bash
vm $ /opt/ruby-enterprise-1.8.7-2012.02/bin/gem list
```
8. 编译Passenger的Apache模块:
```bash
vm $ sudo \
/opt/ruby-enterprise-1.8.7-2012.02/bin/passenger-install-apache2-module \
--auto
```
### 1.3 调优
REE允许通过环境变量对其垃圾回收器进行调优,以下是一些有用的设置及其作用:
| 环境变量 | 作用 | 默认值 | 示例值 |
| --- | --- | --- | --- |
| RUBY_HEAP_MIN_SLOTS | 程序运行时,REE的内存管理器为每个实例化的对象需要一个“堆槽”。当所有堆槽都被填满时,REE会创建另一批堆槽。设置合适的值可以减少内存管理任务。 | 10,000 | 5,000,000 |
| RUBY_GC_MALLOC_LIMIT | REE在开始垃圾回收之前创建的C结构数量。 | 8,000,000 | 59,000,000 |
| RUBY_HEAP_FREE_MIN | 垃圾回收完成后应保留的最小堆槽数。 | 4,096 | 100,000 |
可以将这些环境变量设置添加到解释器可以读取的任何位置,例如在运行REE和Passenger时,可以将它们添加到Apache配置文件中。例如,将`RUBY_HEAP_MIN_SLOTS`设置为500,000:
```apache
SetEnv RUBY_HEAP_MIN_SLOTS 500000
```
也可以将这些设置添加到`/etc/profile`或`~/.bash_profile`中,以便cron作业也能受益。
### 1.4 流程图
```mermaid
graph TD;
A[准备新虚拟机] --> B[更新系统并安装依赖];
B --> C[安装Apache];
C --> D[下载REE];
D --> E[解压并安装REE];
E --> F[检查安装];
F --> G[查看已安装的gem];
G --> H[编译Passenger模块];
```
## 2. 保障sshd安全
### 2.1 背景
新配置的可通过公共互联网访问的主机容易成为黑客的目标,会遭受大量密码猜测攻击。为了防止此类攻击,建议禁用ssh密码认证,改用公钥认证。
### 2.2 操作步骤
1. 生成密钥对并上传公钥(此处省略具体步骤)。
2. 编辑`/etc/ssh/sshd_config`文件,将以下行:
```plaintext
```
0
0
复制全文
相关推荐










