Apache http设置反向代理和负载均衡

Apache http安装

下载地址Apache Haus Downloads

 

 选择自己系统的Apache版本下载安装。

1. 设置根目录或端口
    1.1 进入zip解压后的目录,打开conf目录下的httpd.conf文件;
    1.2 修改目录: Define SRVROOT "/Apache24";

 修改主配置文件:

Define SRVROOT "/Apache24"

修改为自己的安装目录 

Define SRVROOT "D:\Apache24"

    1.3 监听端口默认80,可根据自己需求修改。

2. 以管理员身份打开cmd,切换至Apache解压后的bin目录(如果把bin目录添加到环境变量也可以直接执行3,4步骤),执行步骤3、4指令;
3. 初始化

httpd.exe -k install [-n 'definedName'] ;  (-n 命令是自定义服务器命)

例如:httpd.exe -k install -n "apache"

在初始化前可以通过httpd.exe -t来检查配置文件是否合法


4. httpd.exe -k  start 启动服务;


5. 浏览器地址输入 http://localhost:80 用来确认是否启动;
6. httpd.exe -k stop 停止服务。


7. 常用指令使用
    7.1 重启服务:httpd.exe -k restart  -n "服务名"
    7.2 卸载服务: httpd.exe -k uninstall
    7.2 查看版本:httpd.exe -v

 Apache的启动也可以通过cmd命令窗口打开services.msc的服务界面选择:

 反向代理配置

Apache安装好后,需要主配置文件http.conf

apache的反向代理是通过proxy模块来实现的,因此,在配置代理前,需要在apache服务器内把proxy的一些相关模块加载进来,否则代理配置是无效的。

取消这三行的注释

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
Include conf/extra/httpd-vhosts.conf

http默认端口是80,设置localhost对IP101.43.147.67:8080的反向代理

反向代理规则配置:在 apache的安装目录/conf/vhosts.conf 中对应的站点内配置

更改内容:

<VirtualHost *:80>
DocumentRoot "${SRVROOT}/htdocs"
#ServerName www.example.com:80
ProxyPass / http://101.43.147.67:8080/
ProxyPassReverse / http://101.43.147.67:8080/
</VirtualHost>

重启httpd服务生效。

ps:也可以注释Include conf/extra/httpd-vhosts.conf这一行,然后直接在httpd.conf文件中添加以上的更改内容,效果一样。

负载均衡设置

1. 修改httpd.conf的配置文件,取消一些注释。

其中mod_proxy提供代理服务器功能,mod_proxy_balancer提供负载均衡功能, mod_proxy_http让代理服务器能支持HTTP协议

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
 

2.设置热备份(Hot Standby)

ProxyRequests Off 

 <Proxy balancer://mycluster> 

 BalancerMember http://node-a.myserver.com:8080 

 BalancerMember http://node-b.myserver.com:8080 status=+H 

 </Proxy> 

 ProxyPass / balancer://mycluster
ProxyPassReverse / balancer://clusters/

报错:

Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration

原因:因为Apache2.4和2.2版本访问控制有区别,Apache2.4提供了mod_access_compat这一新模块来兼容旧语句,取消注释掉这一行即可:

LoadModule access_compat_module modules/mod_access_compat.so

 

参考链接:

Apache如何做负载均衡配置-Apache-PHP中文网


 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大宇进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值