我已经为多个URL创建了代理传递。
listen 80;
listen [::]:80;
server_name ~^(.*)redzilla\.11\.75\.65\.21\.xip\.io$;
location / {
set $instname $1;
proxy_pass http://${instname}redzilla.localhost:3000;
}
当我使用Chrome调用此服务时,它触发了502错误。
**一个
我把下面的位置标记硬编码的网址。
location /redzilla {
proxy_pass http://test.redzilla.localhost:3000;
}
然后它只适用于上述URL。我想知道如何在单个位置标签内为多个URL创建代理传递。(请注意:URL模式为 .redzilla.localhost:3000,(星星)表示任意单词)
2条答案
按热度按时间zed5wv101#
如果你在docker内部使用nginx,定义一个网络,使用docker network create....作为该网络一部分的容器(通过docker run上的--network标志),将添加一个dns解析器,可通过127.0.0.11获得。
然后在server {}指令中添加“resolver127.0.0.11;”
6ie5vjzr2#
如果你真的需要动态域名,那么你需要使用解析器。
但是,如果您在proxy_pass中有变量,但在域名中没有变量,最简单的解决方案是使用upstream指令定义服务器。
参见https://nginx.org/en/docs/http/ngx_http_upstream_module.html
示例: