下载地址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 中对应的站点内配置
更改内容:
DocumentRoot "${SRVROOT}/htdocs"
#ServerName www.example.com:80
ProxyPass / http://101.43.147.67:8080/
ProxyPassReverse / http://101.43.147.67:8080/
重启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
BalancerMember http://node-a.myserver.com:8080
BalancerMember http://node-b.myserver.com:8080 status=+H
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中文网