Centos 7部署Nginx网站服务、内网客户端、Haproxy云服务器等详情
admin
2023-02-03 15:21:53
0

下文给大家带来Centos 7部署Nginx网站服务、内网客户端、Haproxy云服务器等详情,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用在行业内累计的经验做一个解答。

一、部署第一台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 ~]# ls
anaconda-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 nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6059/ngin: master  

三、部署内网客户端

1、客户端添加VM1网卡,配置和服务器同网段IP地址

Centos 7部署Nginx网站服务、内网客户端、Haproxy云服务器等详情

2、访问第一台nginx服务器

Centos 7部署Nginx网站服务、内网客户端、Haproxy云服务器等详情

3、客户端更换IP地址访问第二台nginx服务器

Centos 7部署Nginx网站服务、内网客户端、Haproxy云服务器等详情

四、部署Haproxy服务器

Haproxy概述及工作原理详细配置参考博文:Haproxy搭建Web群集概述
Centos 7基于Haproxy搭建高可用Web群集

1、安装haproxy

[root@centos03 ~]# yum -y install pcre-devel bzip2-devel  
[root@centos03 ~]# ls
anaconda-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

Centos 7部署Nginx网站服务、内网客户端、Haproxy云服务器等详情

2)客户端更换IP地址重新访问

Centos 7部署Nginx网站服务、内网客户端、Haproxy云服务器等详情

五、配置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=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
NAME=ens34
DEVICE=ens34
ONBOOT=yes
IPADDR=192.168.200.254  
NATEMASK=255.255.255.0
DNS1=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: ens34
trusted
  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-all
external (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.254
www      A      192.168.200.254
[root@centos04 ~]# named-checkzone benet.com /var/named/benet.com.zone  
          
zone benet.com/IN: loaded serial 2020021801
OK
[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地址
Centos 7部署Nginx网站服务、内网客户端、Haproxy云服务器等详情

2、客户端使用域名访问
Centos 7部署Nginx网站服务、内网客户端、Haproxy云服务器等详情

3、客户端更换IP地址重新访问
Centos 7部署Nginx网站服务、内网客户端、Haproxy云服务器等详情

看了以上关于Centos 7部署Nginx网站服务、内网客户端、Haproxy服务器等详情,如果大家还有什么地方需要了解的可以在行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,技术工程师在行业内拥有十几年的经验了。

 

相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...