Server – Nginx, wie man den Lastausgleich konfiguriert
怪我咯
怪我咯 2017-05-16 17:14:02
0
2
496

Es gibt drei Maschinen, ABC.
Alle Anfragen werden an A gesendet, und A leitet sie dann an BC weiter, der das Geschäft abwickelt.
Angenommen, der Domänenname lautet bla.com. bla.com
在机器A上,http 模块内写以下配置,访问bla.comAuf Maschine A Schreiben Sie die folgende Konfiguration in das http-Modul, besuchen Sie bla.com und besuchen Sie die A-Standardseite

upstream bla.com {
        ip_hash;
        server 192.168.100.2;
        server 192.168.100.3;
}

Wie kann ich alle Anfragen auf ip_hash stellen und an B und C weiterleiten

怪我咯
怪我咯

走同样的路,发现不同的人生

Antworte allen(2)
phpcn_u1582

https 负载均衡架构如图,与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;
    }
}
左手右手慢动作

你的意思是, 不想让A服务器承担流量了?

  1. 在服务器A转发给后端时, 设置特殊的header

add_header HELLO Y;
  1. B,C在发现有HELLO这个header时,立即返回302,让用户对B,C直接发起连接

if ($http_HELLO = 'Y'){
    rewrite ^ http://$server_addr:$server_port$request_uri? redirect;
}
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage