日安!我在nginx配置中配置了upstream和proxypass。在配置中的任何位置都没有关于域名的信息。上游包含相同站点所在的主机xxx和yyy的ip地址。Nginx监听主机zzz上的端口443,并将请求重定向到两个主机之一。证书包含有关域名的信息。当尝试通过这个域名时,nginx重定向到主机xxx或yyy,但我不明白如果我们通过域名,nginx将请求重定向到ip地址,它如何做到这一点。配置还包括证书验证。问题的症结是:如果域名和ip地址没有任何明确的关联,nginx如何将请求按域名重定向到ip地址?
UPD。证书包含域名DOMAIN_NAME。当导航到DOMAIN_NAME时,nginx在zzz获取此请求,并重定向到xxx或yyy。所有这些主机都有证书。我对将请求从域名重定向到ip地址的原理很感兴趣。
upstream name {
least_conn;
server xxx:1448;
server yyy:1448;
}
server {
listen 443 ssl;
listen 4443 ssl;
server_name zzz;
ssl_certificate /path/to/cert;
ssl_certificate_key /path/to/private/key;
access_log /var/log/nginx-access.log upstreamlog;
location /loc {
proxy_pass https://name/loc;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
}
...
}发布于 2020-09-14 13:15:24
这三台主机的关系是上游和服务器配置节,例如:
上游段
upstream upstream_name {
server 192.168.1.xxx weight=5;
server 192.168.1.yyy weight=5;
}服务器部分(部分)
server {
host zzz.domain_suffix;
location / {
proxy_pass http://upstream_name;
#if your xxx and yyy host need a host name to identify the domain,you can set proxy header
#proxy_set_header Host subHost.domain_sufixx
}
}基于up示例,流程为:
用户
->主机zzz.domain_suffix
->选择xxx或yyy来处理此请求(根据上游部分选择子服务器)
-> xxx或yyy将响应返回主机zzz.domain_suffix -> zzz.domain_suffix返回此响应
->用户
评论
用户导航到带有ssl验证的zzz.domain_suffix,但zzz.domain_suffix to xxx或yyy不需要ssl验证,因为zzz to xxx或yyy使用的是http协议,当然可以使用https协议,只需添加proxy_set_header主机,则必须在这两台主机(xxx和yyy)上部署相应的证书。
https://stackoverflow.com/questions/63878269
复制相似问题