listen指令指定了nginx服务器的ip和端口。请求被路由到nginx,然后由它分发到上游池。根据您的图表,运行nginx的主机位于46.137.123.236
,而192.168.11.12
地址是nginx路由请求到的上游池成员。
ip是nginx应用程序运行的主机的ip。至于端口,您可以选择自己的端口。您必须确保端口是开放的,并且没有受到任何防火墙的限制或被其他程序使用。虽然您可以使用任何端口,但通常会为某些类型的应用程序使用特定的端口。例如,http服务器通常使用端口80,Internet浏览器默认使用该端口。如果您选择了不同的端口并正在使用浏览器,则需要在请求中明确指定所选的端口。在您的示例中,假设请求ip和端口是nginx所在的位置,则正确的是将listen 46.137.123.236:80;
指定为ip和端口。
当您转发https时,使用备用端口是惯例。例如,在这种情况下,您可以使用443。在企业环境中,您可能只有几个可用的端口,在这种情况下,http和https有标准端口。
*:80
就足够了。 - Mars127.0.0.1:80
,nginx将仅从内部发起的请求进行侦听,而不是在端口80上接受外部请求。 - Darren Felton
192.168.11.12
,而不是46.137.123.236
?在绝大多数情况下,只需要指定端口,例如listen 80;
。 - Richard Smithlisten public-ip:80
呢? - user9591909