upstream.set_servers("backend", "www.baidu.com")
时间: 2023-10-04 15:05:41 浏览: 55
`upstream.set_servers("backend", "www.baidu.com")` 这段代码的作用是设置名为 "backend" 的upstream对应的服务器列表为 "www.baidu.com"。但是这个代码并不完整,缺少了一些关键的部分,无法正常工作。
在使用 OpenResty 的 upstream 模块时,需要先通过 `upstream` 指令定义一个 upstream。例如:
```
http {
upstream backend {
server 127.0.0.1:8080;
}
}
```
这段配置定义了一个名为 "backend" 的 upstream,其中只有一个服务器,地址为 127.0.0.1:8080。
然后,才可以通过 `upstream` 模块提供的 `set_servers` 方法来修改该 upstream 对应的服务器列表。例如:
```
local upstream = require "ngx.upstream"
local srvs = {
{ host = "www.baidu.com", port = 80 },
{ host = "www.google.com", port = 80 }
}
local ok, err = upstream.set_servers("backend", srvs)
```
这段代码会将 "backend" 的服务器列表修改为包含两个服务器: "www.baidu.com" 和 "www.google.com"。
需要注意的是,修改 upstream 的服务器列表需要在 init_worker_by_lua* 或者 certificate_by_lua* 等指令中执行,因为只有这些指令是在 worker 进程中执行的。在 access_by_lua* 指令中执行无法生效。
阅读全文