CentOS 7搭建Haproxy+Nginx+Firewalld+DNS负载均衡
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,一、部署第一台Nginx网站关于Nginx的原理概述及详细配置请参考博文:Centos 7部署Nginx网站服务[root@centos01 ~]# yum -y install prce-devel
千家信息网最后更新 2025年02月05日CentOS 7搭建Haproxy+Nginx+Firewalld+DNS负载均衡
一、部署第一台Nginx网站
关于Nginx的原理概述及详细配置请参考博文:Centos 7部署Nginx网站服务
[root@centos01 ~]# yum -y install prce-devel zlib-devel [root@centos01 ~]# useradd -M -s /sbin/nologin nginx [root@centos01 ~]# umount /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载[root@centos01 ~]# scp /mnt/nginx-1.6.0.tar.gz root@192.168.100.20:/root The authenticity of host '192.168.100.20 (192.168.100.20)' can't be established.ECDSA key fingerprint is SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I.ECDSA key fingerprint is MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b.Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.100.20' (ECDSA) to the list of known hosts.root@192.168.100.20's password: nginx-1.6.0.tar.gz 100% 784KB 68.2MB/s 00:00[root@centos01 ~]# scp /mnt/haproxy-1.4.24.tar.gz root@192.168.100.30:/root The authenticity of host '192.168.100.30 (192.168.100.30)' can't be established.ECDSA key fingerprint is SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I.ECDSA key fingerprint is MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b.Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.100.30' (ECDSA) to the list of known hosts.root@192.168.100.30's password: haproxy-1.4.24.tar.gz 100% 817KB 31.1MB/s 00:00 00:00 [root@centos01 ~]# tar zxvf /mnt/nginx-1.6.0.tar.gz -C /usr/src/ [root@centos01 ~]# cd /usr/src/nginx-1.6.0/ [root@centos01 nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx [root@centos01 nginx-1.6.0]# make && make install [root@centos01 ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ [root@centos01 ~]# echo "192.168.100.10:nginx" > /usr/local/nginx/html/index.html [root@centos01 ~]# nginx [root@centos01 ~]# netstat -anptu | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3685/ngin: master
二、部署第二台Nginx网站
[root@centos02 ~]# yum -y install pcre-devel zlib-devel [root@centos02 ~]# lsanaconda-ks.cfg initial-setup-ks.cfg nginx-1.6.0.tar.gz[root@centos02 ~]# tar zxvf nginx-1.6.0.tar.gz -C /usr/src/ [root@centos02 ~]# useradd -M -s /sbin/nologin nginx [root@centos02 ~]# cd /usr/src/nginx-1.6.0/ [root@centos02 nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx [root@centos02 nginx-1.6.0]# make && make install [root@centos02 ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ [root@centos02 ~]# echo "192.168.100.20:nginx" > /usr/local/nginx/html/index.html [root@centos02 ~]# nginx [root@centos02 ~]# netstat -anptu | grep nginxtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6059/ngin: master
三、部署内网客户端
1、客户端添加VM1网卡,配置和服务器同网段IP地址
2、访问第一台nginx服务器
3、客户端更换IP地址访问第二台nginx服务器
四、部署Haproxy服务器
Haproxy概述及工作原理详细配置参考博文:Haproxy搭建Web群集概述
Centos 7基于Haproxy搭建高可用Web群集
1、安装haproxy
[root@centos03 ~]# yum -y install pcre-devel bzip2-devel [root@centos03 ~]# lsanaconda-ks.cfg haproxy-1.4.24.tar.gz initial-setup-ks.cfg[root@centos03 ~]# tar zxvf haproxy-1.4.24.tar.gz -C /usr/src/ [root@centos03 ~]# cd /usr/src/haproxy-1.4.24/ [root@centos03 haproxy-1.4.24]# make TARGET=linux26 [root@centos03 haproxy-1.4.24]# make install
2、生成haproxy配置文件
[root@centos03 ~]# mkdir /etc/haproxy [root@centos03 ~]# cp /usr/src/haproxy-1.4.24/examples/haproxy.cfg /etc/haproxy/ [root@centos03 ~]# cp /usr/src/haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy [root@centos03 ~]# chmod +x /etc/init.d/haproxy [root@centos03 ~]# chkconfig --add haproxy [root@centos03 ~]# chkconfig --level 35 haproxy on [root@centos03 ~]# cp /usr/src/haproxy-1.4.24/haproxy /usr/sbin/ [root@centos03 ~]# mkdir -p /usr/share/haproxy
3、配置haproxy群集
[root@centos03 ~]# vim /etc/haproxy/haproxy.cfg listen nginx 192.168.100.30:80 balance roundrobin server web01 192.168.100.10:80 check inter 2000 fall 3 server web02 192.168.100.20:80 check inter 2000 fall 3 [root@centos03 ~]# /etc/init.d/haproxy start Starting haproxy (via systemctl): [ 确定 ]
1)客户端访问192.168.100.30
2)客户端更换IP地址重新访问
五、配置Firewalld防火墙(双网卡)
关于Firewalld防火墙的概述及详细配置请参考博文:Centos 7的Firewalld防火墙基础
Centos 7的firewalld防火墙地址伪装和端口转发原理
centos 7之firewalld防火墙配置IP伪装和端口转发案例详解
[root@centos04 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-ens34 [root@centos04 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens34 TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesNAME=ens34DEVICE=ens34ONBOOT=yesIPADDR=192.168.200.254 NATEMASK=255.255.255.0DNS1=192.168.200.254 [root@centos04 ~]# systemctl restart network [root@centos04 ~]# vim /etc/sysctl.conf net.ipv4.ip_forward = 1[root@centos04 ~]# sysctl -p [root@centos01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32 GATEWAY=192.168.100.40 [root@centos01 ~]# systemctl restart network [root@centos04 ~]# systemctl start firewalld.service [root@centos04 ~]# systemctl enable firewalld.service [root@centos04 ~]# firewall-cmd --add-interface=ens34 --zone=external The interface is under control of NetworkManager, setting zone to 'external'.success[root@centos04 ~]# firewall-cmd --add-interface=ens32 --zone=trusted The interface is under control of NetworkManager, setting zone to 'trusted'.success[root@centos04 ~]# firewall-cmd --get-active-zones external interfaces: ens34trusted interfaces: ens32[root@centos04 ~]# firewall-cmd --remove-masquerade --zone=external success[root@centos04 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.100.0/24 masquerade' success[root@centos04 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 destination address=192.168.200.254/32 forward-port port=80 protocol=tcp to-addr=192.168.100.30'success[root@centos04 ~]# firewall-cmd --zone=external --add-service=http success[root@centos04 ~]# firewall-cmd --zone=external --add-service=dns success[root@centos04 ~]# firewall-cmd --zone=external --list-allexternal (active) target: default icmp-block-inversion: no interfaces: ens34 sources: services: ssh http dns ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="192.168.100.0/24" masquerade rule family="ipv4" destination address="192.168.200.254/32" forward-port port="80" protocol="tcp" to-addr="192.168.100.30"
六、部署DNS
关于DNS详细配置及概述请参考博文:CentOS7简单搭建DNS服务
[root@centos04 ~]# yum -y install bind bind-chroot bind-utils [root@centos04 ~]# echo "" > /etc/named.conf [root@centos04 ~]# vim /etc/named.conf options { listen-on port 53 { any; }; directory "/var/named";};zone benet.com IN { type master; file "benet.com.zone";};[root@centos04 ~]# named-checkconf -z /etc/named.conf [root@centos04 ~]# vim /var/named/benet.com.zone $TTL 86400@ SOA benet.com. root.benet.com.( 2020021801 1H 15M 1W 1D)@ NS centos04.benet.com.centos04 A 192.168.200.254www A 192.168.200.254[root@centos04 ~]# named-checkzone benet.com /var/named/benet.com.zone zone benet.com/IN: loaded serial 2020021801OK[root@centos04 ~]# chmod +x /var/named/benet.com.zone [root@centos04 ~]# chown named:named /var/named/benet.com.zone[root@centos04 ~]# systemctl start named [root@centos04 ~]# systemctl enable named
七、部署外网客户端
1、客户端配置IP地址、添加DNS地址
2、客户端使用域名访问
3、客户端更换IP地址重新访问
-------- 本文至此结束,感谢阅读 --------
配置
客户
客户端
地址
服务
防火墙
防火
服务器
原理
网站
端口
网卡
二台
域名
基础
文件
方式
案例
网段
至此
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技金融互联网金融地方金融
纳米数据库nano肖娟秀
香港的游戏服务器有哪些
网络安全应急处置宣传
应用软件开发基础选择
软件开发人员月费用
服务器双线路
机架式刀片服务器
软件开发助理好吗
网络安全法结构
网络技术人员的职业素养
鄞州敏捷软件开发设计
现代无线和网络技术
2012服务器
5g时代网络安全股票
账号密码是直接上传数据库
t3报表修改后没有数据库
数据库关系图怎么设置一对多
数据库表名大小写建议
政府办公室网络安全简报
准备从事的软件开发工作的
有关设计专业的软件开发
正规的疾病数据库
es数据库按照id删除
软件开发职业圈
php ci框架 数据库
数据库页面
东莞市黑蚁网络技术有限公司
软件开发读取本地音源中的音色
池州通信软件开发定制