Моя цель - сбалансировать все запросы, поступающие на parent_server.com на child_server1.com и child_server2.com с включенным HTTPS. Это моя текущая конфигурация балансировки нагрузки:
upstream childServers {
server child_server1.com:443;
server child_server2.com:443;
}
server {
server_name parent_server.com
location / {
#proxy_pass https://childServers;
}
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
// certbot information
}
server {
if ($host = parent_server.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
listen [::]:80 ;
server_name parent_server.com;
return 404; # managed by Certbot
}
А это мой блок Nginx моего дочернего сервера, в то время как он лежит на другом сервере.
server {
server_name child_server1.com;
location / {
#proxy_pass http://localhost:9000;
}
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
// certbot information
}
server {
if ($host = child_server1.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
listen [::]:80 ;
server_name child_server1.com;
return 404; # managed by Certbot
}
К сожалению, это не работает при поступлении запросовиз балансировщика нагрузки будет иметь хост как «parent_server.com». Один из обходных путей, который я могу использовать, - это прослушивание всех запросов на дочернем сервере, а не ТОЛЬКО child_server1.com. Это правильный способ сделать это? Или есть какой-то другой правильный метод?