`

apache2.2.6 + mongrel_cluster1.0.5负载均衡

 
阅读更多





=========================================

HTTPS方式的访问时浏览器和服务器间要建立安全连接,服务器端要配置证书之类的。具体参考文档或者GOOGLE吧。
=========================================


(1)apache + 单进程mongrel
mongrel (1.1.5)
gem install mongrel


cd ${your_rails_app_root}
mongrel_rails start -e development -p 8080 -r public -l log/m.log -P tmp/pids/dispatch.0.pid -d
mongrel_rails start -h

/usr/local/apache2/bin/httpd -version

vi /etc/httpd/conf/httpd.conf
文件最后加入:

<VirtualHost *:80>
   ServerName www.abc.com
   ErrorLog logs/space.mo.com-error_log
   CustomLog logs/space.mo.com-access_log common
 
   ProxyPass / http://127.0.0.1:8080/
   ProxyPassReverse / http://127.0.0.1:8080/
   ProxyPreserveHost on
</VirtualHost>


注意:
1)上面对于apache得配置很粗糙,把所有的请求到推倒了mongrel实例,产品环境中显然是不行的,apache作为反向代理,最好是指把动态请求推给mongrel实例。
2)  仅有单个mongrel实例使得请求变成了单进程,并发性能不太好
对于小流量的网站无所谓,一旦压力增大,恐怕就的考虑Apache+Mongrel_cluster



(2)apache + mongrel_cluster
mongrel_cluster (1.0.5)
sudo gem install mongrel_cluster

You need to run (mongrel_rails cluster::configure)
from within the root directory of your rails project.

cd #{your_rails_app_root}
mongrel_rails cluster::configure -e development -p 4000 -N 4 -c #{your_rails_app_root} -a 127.0.0.1
 
上面命令在#{your_rails_app_root}/config产生如下配置文件mongrel_cluster.yml


address: 127.0.0.1
pid_file: tmp/pids/mongrel.pid
environment: development
port: "4000"
log_file: log/mongrel.log
servers: 4
cwd: /home/pingan/iche2/trunk/iche


上面已经安装和配置好mongrel_cluster

cd #{your_rails_app_root}
mongrel_rails cluster::start

安装apache2.2.6
cd /usr/local
 
wget http://apache.mirror.phpchina.com/httpd/httpd-2.2.6.tar.gz
 
tar xvzf httpd-2.2.6.tar.gz
 
cd httpd-2.2.6
 
./configure --prefix=/usr/local/apache2.2.22 --enable-so --enable-mods-shared=all --enable-proxy --enable-proxy_http --enable-proxy-balancer --enable-rewrite --enable-cache
 
./configure --prefix=/usr/local/apachel --enable-so --enable-mods-shared=all --enable-rewrite --enable-cache
 
 
 
make && make install
 
由于apache2.2.6的配置文件中已经引入了,所以你无需在配置文件加入这些
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
 

但你必须加上如下部分
 
<Proxy balancer://spacecluster>
    # cluster members
    BalancerMember http://127.0.0.1:4000
    BalancerMember http://127.0.0.1:4001
    BalancerMember http://127.0.0.1:4002
    BalancerMember http://127.0.0.1:4003
  
    #BalancerMember http://192.168.100.234:4000
   
</Proxy>

ExtendedStatus On
<Location /server-status>
    SetHandler server-status
</Location>

<Location /balancer-manager>
    SetHandler balancer-manager
</Location>

<VirtualHost *:80>
    ServerName www.abc.com

    ProxyRequests Off

    ProxyPass /balancer-manager !
    ProxyPass /server-status !
    ProxyPass / balancer://spacecluster/
    ProxyPassReverse / balancer://spacecluster/
</VirtualHost>
 
到此你的 apache + mongrel cluster就安装配置好了,你可以用浏览器访问apache看看是否生效了


==================================
一,查看有没有安装过mod_proxy之类的东西

[zhangy@BlackGhost ~]$ /usr/local/apache2/bin/httpd -l

如果没有发现mod_proxy,我们就到apache安装目录下的modules里面看看有没有mod_proxy.so文件,如果都没有,则说明没有加载负载均衡的模块

二,安装mod_proxy,proxy_balancer_module等

进入apache的解压目录,就是你从网上下载下来的压缩文件,然后解压产生的目录。

cd   apache的解压目录/modules/proxy

[root@BlackGhost proxy]# /usr/local/apache2/bin/apxs -c -i mod_proxy.c proxy_util.c

注意:上面如果不加proxy_util.c的话,LoadModule proxy_module modules/mod_proxy.so会报错的,提示你找不到mod_proxy.so文件

[root@BlackGhost proxy]# /usr/local/apache2/bin/apxs -c -i mod_proxy_balancer.c

[root@BlackGhost proxy]# /usr/local/apache2/bin/apxs -c -i mod_proxy_http.c

出现下面的东西说明装好了。

Libraries have been installed in:
/usr/local/apache2/modules

#要安装的模块装好了
[zhangy@BlackGhost apache2]$ ls ./modules/
httpd.exp     mod_fastcgi.so    mod_proxy.so           mod_rewrite.so
libphp5.so    mod_fcgid.so      mod_proxy_balancer.so
mod_cache.so  mod_mem_cache.so  mod_proxy_http.so

三,配置httpd.conf,测试负载均衡


====================================
注意httpd各个版本之间的差异

httpd2.0.64 vs httpd2.2.22:

httpd2.2.22 is a major release of the 2.2 stable branch. New features include Smart Filtering, Improved Caching, AJP Proxy, Proxy Load Balancing, Graceful Shutdown support, Large File Support, the Event MPM, and refactored Authentication/Authorization.

httpd2.2.22 源码modules/proxy/中mod很丰富,像mod_proxy_balancer.c和mod_proxy_http.c都是新增的


===========================================

启动和停止apache
启动:sudo /usr/local/apache2/bin/httpd -k start

启动时提示:

  httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName.
解决办法是在http.conf中加一行:
  ServerName 127.0.0.1:80

停止:sudo /usr/local/apache2/bin/httpd -k stop


让Ubuntu开机自动启动apache.

1). 复制 /usr/local/apache2/bin/apachectl到/etc/init.d
2). 加载为服务
     sudo update-rc.d apachectl defaults

开机重启访问http://localhost/如果显示apache的网页,就说明自动启动成功了。



reload Apache:

sudo /etc/init.d/apache2.2 -k restart|stop






分享到:
评论

相关推荐

    apache2.2.6+php5.2.5+mysql的配置文件

    标题提及的"apache2.2.6+php5.2.5+mysql的配置文件"是指在特定版本的Apache HTTP Server和PHP环境中,如何进行配置以确保它们能与MySQL数据库服务协同工作。这些配置文件是系统运行的基础,决定了服务的性能、安全性...

    RHEL5 +Apache2.2.6+Tomcat5.5.26整合

    ### RHEL5 + Apache2.2.6 + Tomcat5.5.26 整合:构建高效Web服务器环境 #### 第一部分:安装与配置Apache2.2.6 Apache作为全球广泛使用的Web服务器软件之一,其稳定性与性能备受好评。在本教程中,我们将学习如何...

    vagrant_2.2.6_x86_64.msi

    由于vagrant官网下载vagrant_2.2.6_x86_64.msi非常慢, 因此提供下载

    红旗Linux6+apache2.2.6+mysql5+PHP5.2.4+ZO3.3.0配置

    在本文中,我们将详细探讨如何在红旗Linux 6操作系统上配置Apache 2.2.6、MySQL 5、PHP 5.2.4以及ZendOptimizer 3.3.0的环境。这个配置过程适用于需要搭建Web服务器或者进行PHP开发的用户。 首先,我们需要准备红旗...

    vagrant_2.2.6+centos7_box.zip

    vagrant_2.2.6_x86_64.msi,centos7.box。 vagrant init centos/7 # 复制下载好的virtualbox.box到D:\virtualbox.box,然后执行 vagrant box add centos/7 D:\virtualbox.box

    vagrant_2.2.6_x86_64.dmg.zip

    macos版本,vagrant是一个操作虚拟机的工具。它提供了一套高效而便利的虚拟机管理方式,通过命令和配置文件,当然也要基于vagrant自身的约定,就能很快的完成一套开发环境的部署,并可以打包传播,极大的方便了在...

    windows下配置PHP5.2.5+Apache+2.2.6+MySQL+6.03详细图解.pdf

    在本配置中使用的是Apache2.2.6版本。用户需要从官方网站下载安装程序,选择合适的版本进行安装。安装完成后,Apache服务器会默认监听80端口。用户需修改Apache的配置文件httpd.conf,通常位于Apache安装目录下的...

    apache_2.2.6_win32

    这个"apache_2.2.6_win32"压缩包文件代表的是Apache服务器的特定版本——2.2.6版,针对Windows 32位操作系统优化。在本文中,我们将深入探讨Apache 2.2.6版本及其在Windows环境中的安装和配置。 1. **Apache服务器...

    vagrant_2.2.6_x86_64.zip

    这个压缩包“vagrant_2.2.6_x86_64.zip”包含了Vagrant的特定版本——2.2.6,适配于x86_64架构的系统。Vagrant的主要目标是通过标准化的流程简化开发环境的搭建,使得开发人员可以在任何机器上快速地创建和配置一致...

    JDK1.8+Maven+IDEA+SpringBoot2.2.6+Dubbo+Nacos实现支付宝,微信,银联收单支付源码

    JDK1.8+Maven+IDEA+SpringBoot2.2.6+Dubbo+Nacos实现支付宝,微信,银联收单支付源码

    JSF2.2.6+Spring + Hibernate整合可运行

    这个“JSF2.2.6+Spring + Hibernate整合可运行”项目,旨在提供一个完整的、可运行的框架,以便开发者能够快速搭建基于这些技术的系统。下面我们将详细探讨这三个关键组件以及它们如何协同工作。 **JavaServer ...

    girlsfrontline-resources-extract-2.2.6_flex_

    标题中的“girlsfrontline-resources-extract-2.2.6_flex_”表明这是一个针对《少女前线》(girl`s frontline)2.2.6版本的资源提取项目,而“flex”可能指的是使用了Flex编译器或者与Adobe Flex框架有关。...

    vagrant_2.2.6_x86_64.msi.zip

    这个压缩包 "vagrant_2.2.6_x86_64.msi.zip" 包含的是 Vagrant 的安装程序,版本为 2.2.6,适用于 x86_64(即64位)架构的 Windows 操作系统。 **Vagrant 知识点详解:** 1. **Vagrant 的作用**:Vagrant 通过创建...

    vagrant_2.2.6_x86_64(window版本).zip

    Vagrant 2.2.6是其稳定的一个版本,特别为x86_64架构设计,并且适应于Windows操作系统。 Vagrant的核心概念是“箱”(Boxes),这些预配置的虚拟机镜像包含了开发环境所需的所有软件和依赖,例如操作系统、编程语言...

    apache服务器安装程序 apache_2.2.6-win32-x86

    这个名为"apache_2.2.6-win32-x86"的压缩包文件包含的是Apache服务器的一个特定版本——2.2.6,专为32位Windows操作系统设计。在本文中,我们将详细探讨Apache服务器的安装过程以及与PHP的集成。 1. **Apache服务器...

    webworkinaction.zip_action _oscore-2.2.6.jar_webwork_webwork in

    这个名为"webworkinaction.zip_action_oscore-2.2.6.jar_webwork_webwork in"的压缩包包含了与WebWork框架相关的源代码和资源文件,特别适合初学者入门学习。 首先,`oscore-2.2.6.jar`是Oscailte核心库,它是...

    vagrant_2.2.6_x86_64.7z

    vagrant用于在windows开发环境下使用Laravel框架来开发项目的一款软件。 Laravel是一套简洁、...它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力

    CamRecKing_2.2.6_trial_

    《CamRecKing 2.2.6 试用版:录像技术详解》 CamRecKing 2.2.6 是一款专为录像爱好者和专业人士设计的软件,其试用版本提供了一种便捷的方式,让人们能够体验到高质量的录像功能。这款软件的核心在于它的录像能力,...

    基于struts2.2.6+Mybatis3.2.0+spring3.1的整合项目

    **基于Struts2.2.6+Mybatis3.2.0+Spring3.1的整合项目** 这个项目是一个典型的Java Web应用框架整合实例,它将三个流行的技术——Struts2、Mybatis和Spring——集成在一起,以实现高效、灵活的后端开发。下面将分别...

Global site tag (gtag.js) - Google Analytics