论坛首页 编程语言技术论坛

linux下配置 apache+mongrel_cluster+mongrel

浏览 3396 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-08   最后修改:2009-03-10

操作系统 :Red Hat Enterprise Linux 5

(一)首先我们先安装ruby
http://www.ruby-lang.org/zh_CN/news/2008/08/12/ruby-1-8-7-p72-and-1-8-6-p287-released/
我安装的是 ruby-1.8.6-p287.tar.gz 版本

[root@dingrui ]# tar xzvf ruby-1.8.6-p287.tar.gz
[root@dingrui ]# cd ruby-1.8.6-p287
[root@dingrui ]# ./configure -prefix=/usr/local/ruby
[root@dingrui ruby-1.8.6-p287 ]# make
[root@dingrui ruby-1.8.6-p287 ]# make install

安装好后,修改操作系统的PATH路径 在/etc/profile文件中加入

PATH=/usr/local/ruby/bin:$PATH
export PATH

测试: (要从新启动一次系统)
[root@dingrui ]# ruby -v
ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]

ok 成功!


(二)安装ruby on rails
在安装rails 之前 我们先要安装 rubygems
http://rubyforge.org/projects/rubygems/
下载最新的 rubygems-1.3.1

[root@dingrui ]# tar xzvf rubygems-1.3.1.tgz
[root@dingrui ]# cd rubygems-1.3.1
[root@dingrui rubygems-1.3.1]# ruby setup.rb

现在可以安装rails了
[root@dingrui ]# gem install rails
测试:
[root@dingrui ]# rails -v
Rails 2.2.2

(三)安装 mongrel mongerl_cluster

[root@dingrui ]# gem install mongrel
[root@dingrui ]# gem install mongrel_cluster

(四) 安装apache
http://httpd.apache.org/
我下载的是 最新的 apache 2.2.11
(注意:2..2.2版本的apache有缺陷 ,会使得proxy代码在某些情形下执行失败 要取保你的apache高过这个版本 )
[root@dingrui ]# tar zxvf httpd-2.2.11.tar.gz
[root@dingrui ]# cd httpd-2.2.11
[root@dingrui httpd-2.2.11 ]# ./configure -prefix=/usr/local/httpd-2.2.11 --enable-proxy --enable-proxy-balancer --enable-proxy-http --enable-rewrite --enable-cache --enable-headers --enable-ssl

(注意:--enable前面两个横杠中间没有空格)
[root@dingrui httpd-2.2.11 ]# make
[root@dingrui httpd-2.2.11 ]# make install
测试 :
[root@dingrui httpd-2.2.11 ]# apachectl-k start
来浏览器里输入 127.0.0.1 应该能够看见 apache的测试页面

(五)安装mysql

首先去sun的网站上下载适合你操作系统的mysql数据库安装包

(呵呵 mysql2008年2月已经被SUN收购了)

我下的是rpm包 安装很方便 这里就不啰嗦了!

现在我们给ruby安装mysql驱动

[root@dingrui ]#gem install mysql

这里要注意:如果这一步报错 是因为你的系统还需要安装一下两个软件:

mysql-devel

per-dbi

我mysql 安装的是MYSQL5.0.77 去

http://rpm.pbone.net/index.php3/stat/4/idpl/12049328/com/MySQL-devel-5.0.77-0.i386.rpm.html

 

下载了 mysql-devel-5.0.77-0.i386.rpm

per-DBI-1.40-1.i386.rpm 也可以在上面的网站找到

安装好这两个

gem install mysql -- --with-mysql-include=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql

这样安装驱动就OK了!(注意 要根据自己安装MYSQL的路径)

 

 


(六)配置 应用

1/ 我们先作一个简单的rails 测试应用
[root@dingrui ]#rails -d mysql xadazhe
[root@dingrui ]# cd xadazhe
[root@dingrui xadazhe]# mongrel_rails start
现在访问 http://127.0.0.1:3000/ 因该能看到rails的测试页面

说明你安装的mongrel正在运行,现在还需要证明rails也正常工作。
CTRL+C先停掉 mongrel 接着 :
[root@dingrui xadazhe]# script/generate controller admin
编辑 app/controllers/admin_controller.rb 文件 加入以下内容:
def index
render : text => "test"
end
再次启动 mongrel 访问
http://127.0.0.1:3000/admin

2/ 下面我们要配置前面生成的xadazhe的应用 让他运行在 8000号端口开始的3个mongrel实例上。
注意:一定要在rails项目文件夹下运行这个命令 否则会报错
$mongrel_rails cluster::configure -e production -p 8000 -N 3 -c /root/xadazhe -a 127.0.0.1
这个命令会创建一个mongrel_cluster.yml配置文件 在 xadazhe/config目录下

参数参考:

-e 配置RAILS应用的运行环境

-p mongrel用于坚挺链接的端口号

-N 运行几个mongrel实例

-c 指定一个YAML格式的配置文件

现在启动这个集群

(运行也必须在你rails项目目录下)
[root@dingrui xadazhe]# mongrel_rails cluster::start
starting port 8000
starting port 8001
starting port 8002
OK然后关闭 mongrel_rails cluster::stop

3/ 配置 apache
首先我们在/etc/hosts 文件里加入
127.0.0.1 www.xxx.com

找到 /etc/httpd/conf.d 文件夹 我们创建的rails.conf文件
在里面输入:


NameVirtualHost *:80
#设定mongrel集群
<Proxy balancer://xadazhe_cluster>
BalancerMember http://127.0.0.1:8000
BalancerMember http://127.0.0.1:8001
BalancerMember http://127.0.0.1:8002
</Proxy>
#设定RAILS应用的虚拟主机信息
<VirtualHost *:80>
ServerAdmin admin@xadazhe.com
ServerName www.xxx.com
ServerAlias www.xxx.com
DocumentRoot /root/xadazhe/public
<Directory '/root/xadazhe/public'>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
#将一个服务器映射到本地服务器的URL空间
ProxyPass / balancer://xadazhe_cluster/

#调整由反向代理服务器发送的HTTP应答头中的URL
ProxyPassReverse / balancer://xadazhe_cluster/

ProxyRequests Off
#设定路径从写规则,从写引擎开关 打开
RewriteEngine On
#跟路径从新写INDEX.HTML静态文件
RewriteRule ^/$ /index.html [QSA]

#将找不到的静态问价请求发给mongrel集群处理

RewriteCond % {DOCUMENT_ROOT}/% {request_filename} ! -f

 

RewriteRule ^/(.*)$ balancer://xadazhe_cluster% {REQUEST_URI} [P,QSA,L]
</VirtualHost>

好了基本的配置完成了 我们来测试一下
现启动 mongrel_cluster
[root@dingrui xadazhe]# mongrel_rails cluster::start
在启动apache
[root@dingrui xadazhe]# apachectl -k start
我们在浏览器里输入 http://www.xxx.com/ 应该就能出来RAILS的测试页面
在输入 http://www.xxx.com/admin 应该能出现 TEXT的 页面。

 

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics