云解析服务 DNS-如何配置Nginx解析域名?:操作步骤
操作步骤
- proxy_pass配置IP访问
cn-east-3-nginx-server Nginx配置:
location /test_proxy_pass { proxy_pass http://192.168.0.177:80/status; }
测试nginx.test0222test.top可以正常访问upstream。
- proxy_pass配置 域名 访问,通过系统的/etc/resolv.conf里的server解析。
cn-east-3-nginx-server Nginx配置:
location /test_proxy_pass { proxy_pass http://upstream.test0222test.top:80/status; }
删除内网域名,域名解析到公网的IP。等待超过30s,仍然正常访问upstream。
reload nginx,测试无法访问upstream。
- 修改cn-east-3-nginx-server Nginx配置,增加关键字resolver 100.125.1.250,不再使用操作系统的/etc/resolv.conf里提供的配置,恢复内网域名的配置。
resolver 100.125.1.250; location /test_proxy_pass { proxy_pass http://upstream.test0222test.top:80/status; }
测试正常访问upstream。
删除内网域名,等30s,仍然正常访问upstream。
reload nginx,测试无法访问upstream。
- 修改cn-east-3-nginx-server Nginx配置,使用set指令,将域名设置为变量,在proxy_pass用变量引用,恢复内网域名配置。
resolver 100.125.1.250; location /test_proxy_pass { set $upstream_server upstream.test0222test.top; proxy_pass http://$upstream_server:80/status; }
测试nginx.test0222test.top可以正常访问upstream。
删除内网域名,等30s,再次测试,upstream已无法访问。
- 修改cn-east-3-nginx-server Nginx配置,将通过100.125.1.250解析到的值的生效时间(valid)修改为600s,恢复内网域名的配置并重载nginx。
resolver 100.125.1.250 valid=600; location /test_proxy_pass { set $upstream_server upstream.test0222test.top; proxy_pass http://$upstream_server:80/status; }
测试nginx.test0222test.top可以正常访问upstream。
删除内网域名配置。
等待超过30s,再次测试。
等待超过600s,再次测试,curl失败。
- 恢复内网域名配置,将TTL修改为600s;修改nginx配置,将valid参数修改为30s。
resolver 100.125.1.250 valid=30; location /test_proxy_pass { set $upstream_server upstream.test0222test.top; proxy_pass http://$upstream_server:80/status; }
测试nginx.test0222test.top可以正常访问upstream。
删除内网域名,30s后再次测试是否可以访问upstream。
恢复内网域名后,30s后,测试正常
- 多值测试,内网域名同时配置192.168.0.177和192.168.0.188两个值。
测试时可以观察到,curl的时候,有50%概率卡顿后很快恢复,说明使用了192.168.0.188(可以通过日志中观察)。