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;
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
我按照这个 - 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;
}
}
Run Code Online (Sandbox Code Playgroud)
由于系统解析器会阻塞,因此需要nginx解析器指令。Nginx是一个多路复用服务器(在一个OS进程中有许多连接),因此系统解析器的每次调用将停止处理所有连接,直到收到解析器应答为止。这就是Nginx实现其内部非阻塞解析器的原因。
如果您的配置文件具有静态DNS名称(未生成),并且您不关心在没有重新加载nginx的情况下跟踪IP的更改,则不需要nginx的解析器。在这种情况下,所有DNS名称都将在启动时解析。
resolver
如果要在运行时解析域名而无需重新加载nginx,则应使用Nginx 。
归档时间: |
|
查看次数: |
25277 次 |
最近记录: |