nginx proxy_pass 代理域名


一、描述

1、nginx配置轉發的時候使用的是域名,即使用dns服務方便配置和負載。但是nginx默認會進行緩存,當域名對應的服務出問題的時候就會報錯,只有默認的緩存時間到了才會再次進行解析,nginx在resolver后面有個參數valid設置緩存過期時間。並使用set強制解析(又個弊端,就是不會在使用系統的/etc/resolv.conf)但是我們的服務都是使用的consul管理的,所以不存在這個問題。

 

2、設置valid時間一定要確定dns的安全

 

二、配置

參考:http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver

Syntax:    resolver address ... [valid=time] [ipv6=on|off]; Default: — Context: http, server, location
Syntax:    resolver_timeout time; Default: resolver_timeout 30s; Context: http, server, location

 

server { listen 80; server_name evk.epget.com; location / { resolver 10.42.3.6 valid=30s; set $kkk "http://activity.service.hq:4072"; proxy_pass $kkk; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; }

三、consul 提供DNS

consul服務部署參考我的博客:https://www.cnblogs.com/cuishuai/p/8194345.html

這里不做介紹,注意配置的時候指定dns端口為53,默認端口是8600.設置自己的domain,例如設置為hq,自己定義即可。

在nginx服務器上面提供解析能力,在/etc/resolv.conf添加如下信息

nameserver  10.42.3.6

10.42.3.6是consul的監聽地址。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM