Maison > Questions et réponses > le corps du texte
Il y a trois machines, ABC,
Toutes les demandes sont envoyées à A, puis A les transmet à BC, qui gère l'affaire
Supposons que le nom de domaine est bla.com
bla.com
在机器A上,http 模块内写以下配置,访问bla.com
Sur la machine A, écrivez la configuration suivante dans le module http, visitez bla.com
et visitez la page A default
upstream bla.com {
ip_hash;
server 192.168.100.2;
server 192.168.100.3;
}
Comment puis-je faire cliquer ip_hash
sur toutes les demandes et les transmettre à B et C
phpcn_u15822017-05-16 17:16:02
L'architecture d'équilibrage de charge https est celle indiquée sur la figure, qui n'est pas très différente de http
upstream mywebapp1 {
server 10.130.227.11;
server 10.130.227.22;
}
server {
listen 80;
listen 443 ssl;
server_name example.com www.example.com;
ssl on;
ssl_certificate /etc/nginx/ssl/example.com/server.crt;
ssl_certificate_key /etc/nginx/ssl/example.com/server.key;
ssl_trusted_certificate /etc/nginx/ssl/example.com/ca-certs.pem;
location / {
proxy_pass http://mywebapp1;
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_set_header X-Forwarded-Proto $scheme;
}
}
ringa_lee2017-05-16 17:16:02
Vous voulez dire, vous ne voulez pas que le serveur A supporte le trafic ?
Lorsque le serveur A transmet au backend, définissez un en-tête spécial
add_header HELLO Y;
Lorsque B et C trouvent l'en-tête HELLO, ils renvoient immédiatement 302, permettant à l'utilisateur d'initier directement une connexion vers B et C
if ($http_HELLO = 'Y'){
rewrite ^ http://$server_addr:$server_port$request_uri? redirect;
}