我使用一个Linux Azure VM创建了一个Nginx,是否可以使nginx侦听不同的端口,以便在更改端口号时内容将有所不同。我发现如果在VM上创建两个或多个与HTTP相关的端口,则会发生冲突。有人可以帮我吗?

#1 楼

是的,这是正确的。 ,也许每个服务器中都有不同的文档根。

完整的文档在这里:
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/
}


评论


令人讨厌的是不能听80 81;是不是那好吧...

–马特·弗莱彻(Matt Fletcher)
15年11月27日在13:41

@MattFletcher可以执行类似的操作,请参阅Felix的评论:serverfault.com/a/755791/308219

–PaulMest
16年11月1日在18:36

我必须使用IP地址而不是域名来完成此操作,我已经在可用的站点中创建了2个文件,但在我的情况下无法正常工作。

–穆罕默德
19/12/27在6:07

是否需要“ server_name”?

– red888
20年6月2日在20:39

#2 楼

您还可以执行以下操作:

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


评论


这很棒。特别是,仅能在一个服务器上下文中更改服务器配置似乎比冒险更改一个服务器并使其他参数保持不变要好得多。

– Aaron Sofaer
18年7月2日在22:56

这不能回答@billcyz提出的问题。他要求提供不同的端口和不同的内容。此答案将为不同的端口提供相同的内容。

–艾萨克·萨瑟兰(Isaac Sutherland)
18年8月24日在3:26

@Krishnendu:“方便得多”吗?比什么更方便?这不能回答OP问题。在这种情况下,:80和:8000都指向相同的内容。 OP明确询问“当我更改端口号时,内容将有所不同”。因此,克雷格·米斯凯尔(Craig Miskell)的帖子对这个问题的回答比这个要好得多

–cedbeu
18-10-3在6:56

@cedbeu:是的,在您问Craig Miskell回答的问题的上下文中更合适。我正在寻找另一个需要在多个端口上提供相同内容的解决方案,而这正是我所需要的。同样,对于给定的问题,请问其他答案是否更合适,对不起,如果我误导了某个人,从我这一方面来说这是一个诚实的错误。

– Krishnendu
18-10-4在9:05

@Krishnendu没问题:)现在一切都澄清了

–cedbeu
18-10-4在12:32