服务器 - nginx 如何配置负载均衡
问题描述
有三台机器,ABC,所有请求都给A,然后A转发给BC,由BC处理业务假设域名是bla.com在机器A上,http 模块内写以下配置,访问bla.com,访问到的是A默认页面
upstream bla.com {ip_hash;server 192.168.100.2;server 192.168.100.3;}
怎么样才能让所有的请求都按 ip_hash 转发给B,C
问题解答
回答1: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; }}回答2:
你的意思是, 不想让A服务器承担流量了?
在服务器A转发给后端时, 设置特殊的header
add_header HELLO Y;
B,C在发现有HELLO这个header时,立即返回302,让用户对B,C直接发起连接
if ($http_HELLO = ’Y’){ rewrite ^ http://$server_addr:$server_port$request_uri? redirect;}
相关文章:
1. javascript - vue 数据更新了。但是dom没有更新,,,,,如图2. java基础,求解答。3. debian - docker依赖的aufs-tools源码哪里可以找到啊?4. docker api 开发的端口怎么获取?5. javascript - 读取页面源码,页面中所有的换行都被当成<br/>读取出来 了,,求解应该怎么让它被正确的解析6. html5 - 百度Ueditor代码高亮和代码段滚动条冲突是怎么回事?7. java - 为什么要将Runnable接口的子类对象传递给Thread的构造函数?8. javascript - 关于一段 for 循环代码执行顺序的问题9. 如何调整IDEA中直接运行java程序的日志输出级别?10. javascript - 静态页面引公共头尾文件,js怎么写吖?