nginx proxy_pass 代理域名

1、描述html

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

 

二、設置valid時間必定要肯定dns的安全緩存

 

2、配置安全

參考: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; }

3、consul 提供DNSdom

consul服務部署參考個人博客:https://www.cnblogs.com/cuishuai/p/8194345.htmlui

這裏不作介紹,注意配置的時候指定dns端口爲53,默認端口是8600.設置本身的domain,例如設置爲hq,本身定義便可。spa

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

nameserver  10.42.3.6

10.42.3.6是consul的監聽地址。server

相關文章
相關標籤/搜索