上游在nginx中意味着什么?

gdb*_*gdb 120 configuration nginx

upstream app_front_static {
    server 192.168.206.105:80;
}
Run Code Online (Sandbox Code Playgroud)

以前从未见过,任何人都知道,这意味着什么?

Phi*_*llo 146

它用于代理对其他服务器的请求.

http://wiki.nginx.org/LoadBalanceExample的一个例子是:

http {
  upstream myproject {
    server 127.0.0.1:8000 weight=3;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;    
    server 127.0.0.1:8003;
  }

  server {
    listen 80;
    server_name www.domain.com;
    location / {
      proxy_pass http://myproject;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这意味着所有请求/转到上游XXX下列出的任何服务器,优先选择端口8000.

  • @OlivierPons 可能你的配置是包含在 `/etc/nginx/nginx.conf` 中的 `/etc/nginx/conf.d/default.conf`,它有 `http {}` (5认同)
  • 多个服务器的上游如何工作? (3认同)
  • 为什么你要精确 **`http {}`**?我的conf没有这个并且它有效。就是想 (2认同)

Ben*_*aum 32

upstream定义可以代理请求的集群.它通常用于定义用于负载平衡的Web服务器群集,或用于路由/负载平衡的应用服务器群集.


小智 29

如果我们有一个服务器,我们可以直接将其包含在proxy_pass指令中。例如:

  server {
    ...
    location / {
      proxy_pass http://192.168.206.105:80;
      ...
    }
  }
Run Code Online (Sandbox Code Playgroud)

但如果我们有很多服务器,我们会使用上游来维护服务器。Nginx将根据传入流量进行负载平衡,如本答案所示。