是否可以让 Nginx 监听不同的端口?

bil*_*cyz 115 linux nginx virtual-machines azure

我用一个Linux Azure VM创建了一个Nginx,是否可以让nginx监听不同的端口,这样当我更改端口号时,内容会有所不同。我发现如果我在 VM 上创建了两个或多个与 HTTP 相关的端口,就会发生冲突。任何人都可以帮助我吗?

小智 233

您还可以执行以下操作:

server {
    listen 80;
    listen 8000;
    server_name example.org;
    root /var/www/;
}
Run Code Online (Sandbox Code Playgroud)

  • 这不能回答@billcyz 提出的问题。他要求不同的端口和*不同的内容*。这个答案给出了具有*相同内容*的不同端口。 (13认同)
  • @cedbeu:是的,您在问题的上下文中是对的,Craig Miskell 的回答更合适。我正在寻找另一个解决方案,我需要在多个端口上提供相同的内容,这正是我所需要的。再次对于给定的问题问其他人更合适,对不起,如果我误导了某人,这是我这边的一个诚实的错误。 (6认同)
  • 这很棒。特别是,能够仅在一个服务器上下文中更改服务器配置似乎比冒险更改一个而保持另一个不变要好得多...... (2认同)
  • @Krishnendu:“方便得多”?比什么更方便?这并没有回答OP的问题。在这种情况下,:80 和 :8000 都指向相同的内容。OP明确询问“当我更改端口号时,内容会有所不同”。所以,克雷格·米斯克尔的帖子比这个更好地回答了这个问题 (2认同)

Cra*_*ell 121

是的。

您可能想要的是多个“服务器”节,每个节都有不同的端口,但可能(可能?)相同的 server_name,在每个节中适当地提供“不同”的内容,可能在每个服务器中有不同的文档根。

完整文档在这里:http : //nginx.org/en/docs/http/server_names.html

例子:

server {
    listen       80;
    server_name  example.org  www.example.org;
    root         /var/www/port80/
}

server {
    listen       81;
    server_name  example.org  www.example.org;
    root         /var/www/port81/
}
Run Code Online (Sandbox Code Playgroud)

  • 很烦人不能做`听80 81;`不是吗?那好吧... (30认同)
  • @MattFletcher 可以做类似的事情,请参阅 Felix 的评论:http://serverfault.com/a/755791/308219 (3认同)