guy*_*yug 5 reverse-proxy nginx resolver
我使用nginx作为与ELB的reverse_proxy服务器.我正在寻找有关我在nginx.conf文件中设置的解析器值的解释.我的nginx.conf:
http {  
   ...
   resolver x.x.x.x valid=30s;
   ...
}
server {
   ...
   set $elb "example.com";
location / { 
    ...
    rewrite ^/(.*) $1 break;
    proxy_pass http://$elb/$1?$args; 
    ...
   }
   ...    
}  
我按照这个 - https://www.ruby-forum.com/topic/6816375#1166569并将/etc/resolv.conf值设置为解析器值,它工作正常.这背后的是什么?
Nginx解析器指令对依赖于ELB和proxy_pass的任何AWS环境都至关重要.这是我最近写的帖子,描述了opensource nginx对静态DNS缓存的问题和解决方案:
对于简单的情况,基本上它将归结为以下配置:
server {
  listen        80;
  server_name   example.com;
  location / {
    resolver 172.16.0.23;
    set $upstream_endpoint http://service-999999.eu-west-2.elb.amazonaws.com;
    proxy_pass $upstream_endpoint$request_uri;
  }
}
由于系统解析器会阻塞,因此需要nginx解析器指令。Nginx是一个多路复用服务器(在一个OS进程中有许多连接),因此系统解析器的每次调用将停止处理所有连接,直到收到解析器应答为止。这就是Nginx实现其内部非阻塞解析器的原因。
如果您的配置文件具有静态DNS名称(未生成),并且您不关心在没有重新加载nginx的情况下跟踪IP的更改,则不需要nginx的解析器。在这种情况下,所有DNS名称都将在启动时解析。
resolver如果要在运行时解析域名而无需重新加载nginx,则应使用Nginx 。
| 归档时间: | 
 | 
| 查看次数: | 25277 次 | 
| 最近记录: |