zoukankan      html  css  js  c++  java
  • 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的监听地址。

     

  • 相关阅读:
    将文件移出版本控制 (Revision Control)
    luogu 1966 火柴排队
    bzoj 1069 最大土地面积
    bzoj 1060 时态同步
    luogu 1901 发射站
    bzoj 1007 水平可见直线
    bzoj 2654 tree
    luogu 2024 食物链
    10.21 模拟赛
    tyvj 1013 找啊找啊找GF
  • 原文地址:https://www.cnblogs.com/cuishuai/p/10445819.html
Copyright © 2011-2022 走看看