当我访问我的 VPS 上的 DOMAIN:PORT 时,应用程序响应的顺序是怎样的?

当我访问我的 VPS 上的 DOMAIN:PORT 时,应用程序响应的顺序是怎样的?

我已经拥有运行 Ubuntu 的 VPS 近五年了,并且我对网络方面有一定的了解 - 但我的理解还存在很多漏洞。

当我访问 DOMAIN:PORT 时,我知道请求被路由到我的名称服务器中指定的 A 记录中的 IP,并因此到达我的 VPS - 但我不完全明白之后会发生什么:

  1. 那么 nginx 如何接收请求?是否有一些硬件级别的功能将其路由到配置的 Web 服务器?
  2. 如果我正在运行多个 Web 服务器,比如 nginx 和 apache - 什么决定哪个优先?
  3. nginx 是否会拦截全部传入请求?假设我有 ufw 允许 8000 - 那么 DOMAIN:8000 请求是通过 nginx 路由的吗?或者它可以到达在该端口上本地运行的其他节点服务器吗?

这些问题一直困扰着我,我却不知道该用 Google 来搜索什么。

任何正确方向的指示都将非常感激。


PS 版主,我看了建议的相关问题,但我觉得没有一个能解决我的具体问题。如果我错了,请随时在评论中纠正我。

答案1

nginx(或Apache)通过调用以下方法告诉内核它正在监听特定端口聆听(2). 端口号配置为listen配置中的指令nginxListen对于 Apache。)只有一个进程可以监听特定端口,因此没有顺序,尝试监听同一端口的第二个程序将失败,并显示EADDRINUSE(地址已在使用中)。

相关内容