我们已经设置了在端口3002
上运行的docker容器,然后将端口3002
配置为我的域/path/
上的www.example.com
。在3002
端口容器上运行了一个快速的REST API,它输出req.hostname
,当我从www.abc.com
发出请求时,req.hostname
的控制台值显示为是www.example.com
而不是www.abc.com
。
Nginx Conf
server {
listen 443 ssl;
ssl_certificate /etc/ssl/__abc.crt;
ssl_certificate_key /etc/ssl/abc.key;
listen 80 default_server;
listen [::]:80 default_server;
location / {
proxy_pass http://localhost:3001/;
proxy_set_header Host $host;
}
location /path/ {
proxy_pass http://localhost:3002/;
proxy_set_header Host $http_host;
}
}
我必须进行哪些更改才能使www.abc.com
成为控制台值?
答案 0 :(得分:0)
Nginx的location
块应排序,以使更具体的表达式排在首位。
在您的示例中,您应该具有:
location /path/ {
proxy_pass http://localhost:3002/;
proxy_set_header Host $http_host;
}
location / {
proxy_pass http://localhost:3001/;
proxy_set_header Host $host;
}
通过运行nginx -s reload
或重新启动容器来确保您的更改生效