apache 配置反向代理服务器
前几天实验了下 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 配置反向代理服务器的更多相关文章
- Tomcat:利用Apache配置反向代理、负载均衡
本篇主要介绍apache配置反向代理,介绍了两种情况:第一种是,只使用apache配置反向代理:第二种是,apache与应用服务器(tomcat)结合,配置反向代理,同时了配置了负载均衡. 准备工作 ...
- Apache配置反向代理、负载均衡和集群(mod_proxy方式)
Apache配置负载均衡和集群使用mod_jk的方式比较多,但是mod_jk已经停止更新,并且配置相对复杂.Apache2.2以后,提供了一种原生的方式配置负载均衡和集群,比mod_jk简单很多. 1 ...
- Nginx配置反向代理服务器
首先,在阅读<深入理解Nginx模块>后,大体了解了配置反向代理服务器一些常见的配置.如下进行说明:” l Nginx worker进程个数 语法: worker_processes n ...
- Apache 做反向代理服务器
apache做反向代理服务器 apache代理分为正向代理和反向代理: 1 正向代理: 客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web ...
- wdlinux中apache配置反向代理模块
想要在.htaccess中开启反向代理功能都不行[apache中没有mod_proxy模块] .htaccess 文件内容如下 RewriteEngine On RewriteBase / Rewri ...
- apache做反向代理服务器
apache代理分为正向代理和反向代理: 1 正向代理: 客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web(需要在客户端的浏览器中设置代 ...
- apache 配置反向代理 设置
1.下载 安装 下载地址:http://httpd.apache.org/download.cgi 将apache 安装到某个目录中 修改conf/http.conf文件 修改配置文件端口 (端口为 ...
- apache配置反向代理
http.conf 去掉前面的#号 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/ ...
- apache反向代理服务器
1 正向代理: 客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web(需要在客户端的浏览器中设置代理服务器) 适用于: ①局域网的代理服务器 ...
随机推荐
- 初识IStructuralEquatable接口
System.Collections.IStructuralEquatable 是 .NET Framework 4.5 新引入的一个接口,位于System.Runtime.dll程序集中. MSDN ...
- DDD领域驱动设计之运用层代码
1.DDD领域驱动设计实践篇之如何提取模型 2.DDD领域驱动设计之聚合.实体.值对象 3.DDD领域驱动设计之领域基础设施层 4.DDD领域驱动设计之领域服务 5.整体DEMO代码 什么是运用层,说 ...
- Unity3D——物体鼠标跟随转向
int floorMask; float camRayLenth = 100f;//摄像机射线距离 void Truning() { Ray ray = Camera.main.ScreenPoint ...
- Twitter API升级至1.1
Twitter API 1.1是至今最大的一次升级,从3月份提出,到6月11日1.0版本已经全面停止调用.关于1.1版本升级特性可访问: https://dev.twitter.com/docs/ap ...
- 深入浅出OOP(一): 多态和继承(早期绑定/编译时多态)
在本系列中,我们以CodeProject上比较火的OOP系列博客为主,进行OOP深入浅出展现. 无论作为软件设计的高手.或者菜鸟,对于架构设计而言,均需要多次重构.取舍,以有利于整个软件项目的健康构建 ...
- Maven之Hello World入门实例
1.使用eclipse创建maven工程在eclipse中,选择新建工程的时候,选择other,找到maven 下一步,下一步,直到出现类似如下图片点击finish即可完成maven工程创建. 运行的 ...
- HTML5实战与剖析之原生拖拽(四可拖动dragable属性和其他成员)
可拖动dragable属性 之前我们已经为大家介绍过几篇有关HTML5中原生拖拽的相关知识了.今天为大家介绍HTML5拖拽中的其他一些小东东,闲话不多说赶快一起看看吧. 在默认情况下,链接.文本和图像 ...
- [Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium
最近准备深入学习Python相关的爬虫知识了,如果说在使用Python爬取相对正规的网页使用"urllib2 + BeautifulSoup + 正则表达式"就能搞定的话:那么动态 ...
- duilib进阶教程 -- 改进窗口拖动 (12)
现在大家应该都知道caption="0,0,0,32",是指示标题栏区了吧,如果想要整个窗口都能拖动呢? 那直接把高度改成和窗口一样不就得了~O(∩_∩)O~ 嗯,这样是可以,比如 ...
- HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比
最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...