网站整套部署方案-负载均衡配置Nginx+宝塔+云数据库+云WAF

这是一套部署特别方便的站点方案,包括使用nginx负载均衡,宝塔部署站点,云数据库加一套安全产品云WAF。

一、结构图

1、基本功能

负载均衡,WEB,数据库都是在一个云平台上,内网都属于一个vpc二层网络。

2、安全产品

云WAf可以独立于云平台,在基本框架部署完毕后,修改CNAME记录,完成调试。在项目上线前,千万不能暴露了原有的解析地址,否则直接可以绕过WAF,直接攻击站点IP地址。
image

二、功能介绍

1、云数据库

云数据库在相同的vpc网络,ip地址是192.168.1.4,宝塔自带mysql数据库,由于是性能问题,使用独立出来的云数据库,只要提供云数据库的ip地址和账号密码,即可完成数据库部署。

2、站点

站点部署在两台宝塔上,宝塔之间使用付费购买的同步文件,保证两个站点之间文件是相同的。如果需要部署证书,可使用宝塔免费证书。
文件同步,只能同步文件夹的数据,证书,站点名字,都需要单独设置一样的。

3、负载均衡

本次的负载均衡采用nginx负载,当外网访问过来时,按照一定的规则,内网IP传输到两台web主机,实现负载功能。

4、云WAF

云WAF主要用来做安全防护,配置灵活,部署方便,只需要设置站点域名,WAF的分配给域名做cname解析,即可实现防护的功能

5、证书

证书部署,首先部署在宝塔的站点,解析先做在宝塔的公网ip,看下是否正确;nginx负载也需要部署证书,解析改到负载的公网ip,检查;部署云WAG,需要部署域名证书,不需要改解析了,只要做cname即可。

三、设备配置

1、负载均衡

/etc/nginx/conf.d/websites.conf

http {

 gzip on;
 gzip_min_length 5k;
 gzip_buffers 16 64K;
 gzip_comp_level 6;

 client_max_body_size 25m;
 
 upstream kkk123 {
 ip_hash;
 server 192.168.1.2:80 weight=5 max_fails=3 fail_timeout=30s;
 server 192.168.1.2:80 weight=5 max_fails=3 fail_timeout=30s;
 }
 
 include /etc/nginx/conf.d/websites.conf;   

# Load configuration files for the default server block.
#       include /etc/nginx/default.d/*.conf;
}

/etc/nginx/conf.d/websites.conf

server {
        listen       80;
        listen       443 ssl ;
        #listen       [::]:80;
        server_name www.123.com;
        ssl_certificate "/etc/nginx/cert/www_123_com.pem";
        ssl_certificate_key "/etc/nginx/cert/www_123_com.key";
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

        #=========301-START===========#
      #  if ($host ~ '^shop.httx3.top'){
      #  return 301 https://www.123.com$request_uri;
      #  }
        if ( $scheme = http ){
        return 301 https://$server_name$request_uri;
        }
      #  #=========301-STOP===========#
      #  #error_page 404 /404.html;

        location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_redirect off;
        proxy_pass  http://kkk123;
        }
    }
3、nginx注意点

上传证书key和pem时,需要修改密钥开头的值,否则会报错。

key文件
BEGIN KEY改成BEGIN PRIVATE KEY
END KEY改成END PRIVATE KEY

pem文件
BEGIN CERTIFICATE改成BEGIN TRUSTED CERTIFICATE
END CERTIFICATE改成END TRUSTED CERTIFICATE
nginx基本命令

检查配置
nginx -t
重启服务
nginx -s reload

2、云WAF

云WAF也需要添加证书,在使用原始的key文件和pem文件;不使用修改过的nginx的key和pem文件。
在WAF上面设置需要保护的域名,会生成一个cname记录,需要把这个cname记录添加到域名解析。
域名解析使用负载均衡的公网IP地址。

验证:

直接ping站点的域名,返回的域名信息和ip地址,均已经变成WAF的信息,真实的负载均衡公网IP地址没有显示。

四、方案优势

有一定的安全防护,部署经费低,使用云资源,开通时间短,部署方便。

posted @ 2022-05-19 13:55  rootkk  阅读(990)  评论(0编辑  收藏  举报