`listen`指令实际上在nginx中听到了什么?

时间:2018-04-18 14:53:04

标签: nginx

listen指令的语法如下所示。

server {
    listen ADDRESS:PORT;
}

但ADDRESS和PORT在这里意味着什么? 客户端IP地址的地址?或服务器IP地址?或者请求的IP地址?所以作为PORT部分,谁的端口要听?

假设我有这样的情况 enter image description here

listen指令的正确参数是否可以?

listen 46.137.123.236:80;

并且,在哪种情况下,我应该指定IP地址而不是*:80

1 个答案:

答案 0 :(得分:0)

listen指令指定nginx服务器的ip和端口。请求被路由到nginx,然后nginx将它们分发到上游池。根据您的图表,运行nginx的主机位于46.137.123.236192.168.11.12地址是nginx将请求路由到的上游池成员。

ip是运行nginx应用程序的主机的ip。至于端口,您可以选择自己的端口。您必须确保端口是开放的,不受任何防火墙限制或被其他程序使用。虽然您可以使用您选择的任何端口,但通常的做法是为特定类型的应用程序使用特定端口。例如,http服务器通常使用端口80,并且互联网浏览器默认使用此端口。如果您选择其他端口并使用浏览器,则应在请求中明确指定所选端口。在您的示例中,假设请求ip和port是nginx所在的位置,那么您可以通过将listen 46.137.123.236:80;指定为ip和port来正确。

转发https时,通常使用备用端口。例如,在这种情况下你可以使用443。在企业环境中,您可能只有几个端口可供使用,在这种情况下,有http和https的标准端口。