前几天实验了下 nginx 配置反向代理服务器。虽然 nginx 的安装很麻烦,但是用起来倒是很简单。不过组里没人用过 nginx,apache 服务器大家倒是蛮熟,为了减少 ops team 的工作量,我决定使用 apache。

我记得本科时安装过 apache 服务器,当初没有遇到困难。而这次安装却总也安装不成功,公司对机器的权限管理的很严格,我没有 root 权限,没有连接外网权限,编译 apache 时有很多依赖拿不到,最后还是请 ops team 的人帮忙搞定的。

配置 proxy module。apache 服务器的 proxy module 是安装可选的,编译时没有加入反向代理 module,但在编译完成后,依然可以通过修改配置动态加载。配置在 conf/httpd.conf 中,把反向代理相关的 module uncomment 就好。这里需要注意,如果 module 之间存在依赖关系,apache 不会自动 resolve 依赖,反之,它会在 error.log 中告诉我们缺少哪个模块。

至于反向代理的配置,也在 httpd.conf 中,配置的写法和 nginx 非常类似,对于我的需求,只要在 httpd.conf 中添加

Listen 8080

<VirtualHost *:8080>
LogLevel error <Location />
ProxyPass http://hostname1:2014/
ProxyPass http://hostname2:2014/
#ProxyPassReverse http://mywebsite.jamescoyle.net/
</Location> </VirtualHost>

  

需要注意,2014端口后面需要添加一个 / 不然 url 的转换会出错。

关闭 hostname1 上的服务后,apache 会把 request 路由到 hostname2 上,和我需求一致。

反向代理搭建完毕后我依然对某些配置不是很理解,比如  ProxyPassReverse,ServerName 等等。

后记:上面并没有实现负载均衡。

<VirtualHost *:2014>
LogLevel info <Proxy balancer://mycluster>
BalancerMember http://host1:2015
BalancerMember http://host2:2015
</Proxy> ProxyPass / balancer://mycluster/ </VirtualHost>

  

我以为配上两个 ProxyPass 就实现了负载均衡,实际并非如此, ProxyPass 配置多条的话,后面的会覆盖前面的,但是好处是当一个 node down 掉后,apache 会自动路由到可用的。上面的配置才是真正的负载均衡,策略是默认的 byRequests. 需要注意的是, BalanceMember 后面没有 /,ProxyPass 后面有 /

配置完测试了几次,发现两个 node 都有请求的到来。

关于配置:

apache 提供了很多详细的配置,用于自定义反向代理/负载均衡的行为。比如,lbmethod 可以选取 byRequests, byTraffic 等等,还可以设置 lbfactor, timeout, retry

apache 配置反向代理服务器的更多相关文章

  1. Tomcat:利用Apache配置反向代理、负载均衡

    本篇主要介绍apache配置反向代理,介绍了两种情况:第一种是,只使用apache配置反向代理:第二种是,apache与应用服务器(tomcat)结合,配置反向代理,同时了配置了负载均衡. 准备工作 ...

  2. Apache配置反向代理、负载均衡和集群(mod_proxy方式)

    Apache配置负载均衡和集群使用mod_jk的方式比较多,但是mod_jk已经停止更新,并且配置相对复杂.Apache2.2以后,提供了一种原生的方式配置负载均衡和集群,比mod_jk简单很多. 1 ...

  3. Nginx配置反向代理服务器

    首先,在阅读<深入理解Nginx模块>后,大体了解了配置反向代理服务器一些常见的配置.如下进行说明:” l  Nginx worker进程个数 语法: worker_processes n ...

  4. Apache 做反向代理服务器

    apache做反向代理服务器 apache代理分为正向代理和反向代理: 1 正向代理: 客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web ...

  5. wdlinux中apache配置反向代理模块

    想要在.htaccess中开启反向代理功能都不行[apache中没有mod_proxy模块] .htaccess 文件内容如下 RewriteEngine On RewriteBase / Rewri ...

  6. apache做反向代理服务器

    apache代理分为正向代理和反向代理: 1 正向代理: 客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web(需要在客户端的浏览器中设置代 ...

  7. apache 配置反向代理 设置

    1.下载 安装 下载地址:http://httpd.apache.org/download.cgi 将apache 安装到某个目录中 修改conf/http.conf文件 修改配置文件端口  (端口为 ...

  8. apache配置反向代理

    http.conf 去掉前面的#号 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/ ...

  9. apache反向代理服务器

    1 正向代理: 客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web(需要在客户端的浏览器中设置代理服务器) 适用于: ①局域网的代理服务器 ...

随机推荐

  1. Dynamic CRM 2013学习笔记(三十三)自定义审批流4 - 规则节点 -有分支的流程处理

    上次介绍过节点的基本配置<Dynamic CRM 2013学习笔记(三十二)自定义审批流3 - 节点及实体配置>,这次介绍下规则节点,因为有时流程里会有一些分支.合并,这时就要用到规则节点 ...

  2. 用puthivestreaming把hdfs里的数据流到hive表

    全景图:   1. 创建hive表 CREATE TABLE IF NOT EXISTS newsinfo.test( name STRING ) CLUSTERED BY (name)INTO 3 ...

  3. C#设计模式(18)——中介者模式(Mediator Pattern)

    一.引言 在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室.QQ群和短信平台,这些都是中介者模式在现实生活中的应用,下面就具体分享下我对中介者模式的理解. 二. 中介者模式的介绍 2.1 ...

  4. [51单片机] HC-SR04超声波测距仪 基础代码

    >_<:超声波测距仪模块: >_<:51单片机,11.0592MHz晶振,将采集数据发送到串口的基础例子: >_<:代码: /******************* ...

  5. AngularJS快速入门指南01:导言

    AngularJS使用新的attributes扩展了HTML AngularJS对单页面应用的支持非常好(SPAs) AngularJS非常容易学习 现在就开始学习AngularJS吧! 关于本指南 ...

  6. Qt5.3 打印示例时出现错误

    说明:今天我在用Qt5.3写打印文档的时候,编译出错了,出错代码为: C:\Users\joe\Desktop\5-9\myPrint\mainwindow.cpp:35: error: undefi ...

  7. 我的fckeditor实践

    一开始我不懂这个ConnectorServlet是何用处,后来发现是专门用于文件上传的,因为fckeditor默认是不支持这个功能的. ConnectorServlet: /* * FCKeditor ...

  8. atitit.微信项目开发效率慢的一些总结

    atitit.微信项目开发效率慢的一些总结 #---理念问题..这个是最大的问题.. 要有专人提升开发效率才好.. #---没有一个好的开发方法体系.... ini deve 法. fell asd+ ...

  9. iOS开发——高级技术&签名机制

    签名机制 最近看了objc.io上第17期中的文章 <Inside Code Signing> 对应的中文翻译版 <代码签名探析> ,受益颇深,对iOS代码签名机制有了进一步的 ...

  10. springJDBC学习笔记和实例

    前言:相对于Mybatis(ibatis),个人感觉springJDBC更灵活,主要实现类JdbcTemplate:它替我们完成了资源的创建以及释放工作,从而简化了我们对JDBC的使用.它还可以帮助我 ...