首页 > 技术文章 > Nginx的server为0.0.0.0/0.0.0.1的作用?

mentalidade 2017-05-10 10:45 原文

看到kong默认的代理和后台server 都是0.0.0.0,代理到上游的服务器proxy_pass $upstream_scheme://kong_upstream;配置如下,

upstream kong_upstream {
    server 0.0.0.1;
    balancer_by_lua_block {
        kong.balancer()
    }
    keepalive 60;
}

监听的IP地址设置了 0.0.0.0 就表示你的nginx服务器监听本机的所有IP地址上,通过任何一个IP地址都可以访问到.
当发送数据的一方还不知道接收方的IP地址时,会在目的IP地址字段中使用0.0.0.0,表示未知IP地址(有时还用于表示无效IP地址)。

  • In the Internet Protocol Version 4, the address 0.0.0.0 is a non-routable meta-address used to designate an invalid, unknown or non-applicable target. To give a special meaning to an otherwise invalid piece of data is an application of in-band signaling.

  • In the context of servers, 0.0.0.0 means "all IPv4 addresses on the local machine". If a host has two IP addresses, 192.168.1.1 and 10.1.2.1, and a server running on the host listens on 0.0.0.0, it will be reachable at both of those IPs.

  • In the context of routing, 0.0.0.0 usually means the default route, i.e. the route which leads to "the rest of" the internet instead of somewhere on the local network.
    wiki地址

推荐阅读