aws 基于延迟策略配置dns故障切换

摘要:
位置/{proxy_set_headerHost$http_host;server_nametest.imcati.com;}ssl_certificate/etc/nginx/ssl/test.imcati.com.crt;ssl证书密钥/etc/nginx/ssl/test.imcati.com.key;ssl_会话超时5m;

前提:由于国内访问首尔地区经常出现不稳定情况,现将请求从nginx(sz)转发到nginx(hk)再转发到首尔地区,在基于不改变nginx(seoul)的配置的前提下,引入aws的延迟策略,同时保证国内

解析出现问题时,迅速将解析切至首尔的nginx。

实现:基于aws route53 配置延迟故障切换策略

nginx(sz)配置:
server {
    listen       80;
    listen       443 ssl;
    server_name  test.imcati.com;
    if ( $server_port = 80 ) {
    return  301  https://$server_name$request_uri;}

    ssl_certificate      /etc/nginx/ssl/test.imcati.com.crt;
    ssl_certificate_key  /etc/nginx/ssl/test.imcati.com.key;
    ssl_session_timeout  5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers   on;
    access_log  /var/log/nginx/access.log access_log_json;
    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://xx.xx.xx.xx;  #nginx(hk) ip addr
    }
}
nginx(hk)配置:
server {
    listen       80;
    listen       443 ssl;
    server_name  test.imcati.com;
    location / {
        proxy_set_header Host  $http_host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://xx.xx.xx.xx; nginx(seoul) ip addr
    }
}
nginx(seoul)配置:
server {
    listen       80;
    listen       443 ssl;
    server_name  test.imcati.com;
    if ( $server_port = 80 ) {
    return  301  https://$server_name$request_uri;}

    ssl_certificate      /etc/nginx/ssl/test.imcati.com.crt;
    ssl_certificate_key  /etc/nginx/ssl/test.imcati.com.key;
    ssl_session_timeout  5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers   on;
    access_log  /var/log/nginx/access.log access_log_json;
    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://xx.xx.xx.xx;  # backend server addr
    }
}

aws dns策略配置参考图:

aws 基于延迟策略配置dns故障切换第1张

操作步骤如下:

创建健康检查-->配置两条A记录基于延迟策略-->配置两条Alias别名到之前的A记录

创建健康检查:

aws 基于延迟策略配置dns故障切换第2张

创建两条A记录,解析到sz的记录配置健康检查

示例

sz的记录:test-cn.imcati.com

seoul的记录:test-kr.imcati.com

aws 基于延迟策略配置dns故障切换第3张aws 基于延迟策略配置dns故障切换第4张

sz的ip解析ttl时间调至60s,便于dns切换快速完成。

创建域名别名到A记录:

aws 基于延迟策略配置dns故障切换第5张

可以通过修改健康检查,测试ip解析地址是否进行切换。

 参考链接:https://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html

免责声明:文章转载自《aws 基于延迟策略配置dns故障切换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇通过IP或socket获取对方的MAC地址RISC-V与DSA计算机架构下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux 非root用户安装nginx

第一步:首先下载依赖包 下载地址 pcre(www.pcre.org),zlib(www.zlib.org),openssl(www.openssl.org) 第二步:上传那个nginx的安装包 下载nginx安装包,解压 [bdctool@localhost setup]$ tar  -zxvf nginx-1.12.2.tar.gz [bdctool@...

Nginx开启gzip

1. ngx_http_gzip_module ngx_http_gzip_module是nginx中堆响应以gzip方式进行压缩的一个拦截器,以减少传输数据的大小。 配置示例: gzip on; gzip_min_length 5k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_le...

charles工具抓包教程(http跟https)

1.下载charles     可以去charles官网下载,下载地址:http://www.charlesproxy.com/download/    根据自己的操作系统下载对应的版本,然后进行安装,然后打开charles工具 2.设置代理(记住手机跟电脑要在同一个网络,用的同一个路由器)   1).查看默认端口    Proxy->Proxy...

nextcloud nginx搭建完后(初始化数据库后)登录不了

nextcloud搭建完初始化数据库(mysql8.0)后,输入用户名、密码后登录不了、登录没反应(还是跳转当前登录页面)呈现如下: 原因是web、php nginx 和  ../php/session/ 不是同一个用户 这里的../php/session是php在你当前系统安装的位置,很多博客、论坛也说明了问题,但是给的session的位置不一定对,如下...

CentOS7安装Nginx及其相关

一、安装所需环境 gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装。 yum install gcc-c++ PCRE pcre-devel 安装 PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。...

nginx 地址匹配规则

一、location 后面的url地址最后加/,和不加/的区别 location /jspm-center-mgr/api/jsis/tojscp/ { proxy_pass http://10.10.203.127:8766/api/jsis/; proxy_connect_timeout 300s;...