nginx中的解析器参数

时间:2016-10-30 15:38:00

标签: nginx reverse-proxy 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值设置为解析器值,它工作正常。这背后的是什么?

2 个答案:

答案 0 :(得分:8)

Nginx解析器指令对依赖于ELB和proxy_pass的任何AWS环境都至关重要。这是我最近写的帖子,描述了opensource nginx的静态DNS缓存的问题和解决方案:

Nginx resolver explained and how to deal with changing IPs

基本上,对于简单的情况,它将归结为以下配置:

for i in 1..apex_application.g_f01.count loop
   insert into mytable (value) values (apex_application.g_f01(i));
end loop;

答案 1 :(得分:7)

使用系统解析程序块。 Nginx是多路复用服务器(一个OS进程中的许多连接),因此系统解析器的每次调用都将停止处理所有连接,直到收到解决的答案。这就是为什么Nginx实现了自己的内部非阻塞解析器。

如果您的配置文件具有静态DNS名称(未生成),并且您不关心在没有nginx重新加载的情况下跟踪IP更改,则您不需要nginx的解析程序。在这种情况下,所有DNS名称都将在启动时解析。

如果你想在没有nginx重新加载的情况下解析运行时的域名,那么

使用Nginx resolver