nginx 上游名称中的有效字符

Fra*_*k B 5 nginx

在这样的上游配置中:

upstream name {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想知道名称中可以使用哪些字符。它必须是字母数字还是还允许使用其他字符?

Rog*_*ach 4

这是从配置文件读取令牌的代码:https://github.com/nginx/nginx/blob/master/src/core/ngx_conf_file.c#L771

似乎你可以使用任何你喜欢的字符,除了空格、制表符和变量插值。(如果将上游名称用引号括起来或在必要时转义字符,则可以使用空格和制表符)。

我已经让这个令人厌恶的东西起作用了,所以看起来 nginx 在可接受的字符方面相当自由:

upstream x_2.2-34%15=54^1@2!&3()4aoeu't {
  server 127.0.0.1:8086;
}
server {
  location / {
    proxy_pass http://x_2.2-34%15=54^1@2!&3()4aoeu't;
  }
}
Run Code Online (Sandbox Code Playgroud)