Nginx經過upstream和proxy_pass實現了負載均衡。本質上也是Nginx的反向代理功能,只不事後端的server爲多個。node
Nginx負載均衡主要配置方式有:輪詢、weight 、ip_hash、fair(第三方)、url_hash(第三方) nginx
1. 新建一個負載均衡配置文件vim
vim /usr/local/nginx/conf/vhost/load.conf
添加如下內容:後端
upstream baidu_com { ip_hash; server 14.215.177.38:80; server 14.215.177.39:80; } server{ listen 80; server_name www.baidu.com; location /{ proxy_pass http://baidu_com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
以上以百度爲例進行配置,ip能夠經過big命令進行獲取。若是沒有big命令須要進行安裝:yum install -y bind-utilsbash
[root@node1 vhost]# dig www.baidu.com ; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42045 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 583 IN CNAME www.a.shifen.com. www.a.shifen.com. 292 IN A 14.215.177.38 www.a.shifen.com. 292 IN A 14.215.177.39 ;; Query time: 1 msec ;; SERVER: 183.60.83.19#53(183.60.83.19) ;; WHEN: Thu Jun 06 16:12:43 CST 2019 ;; MSG SIZE rcvd: 101
2. 測試負載均衡
測試訪問www.baidu.com若是能通說明代理成功curl
curl -x 127.0.0.1:80 www.baidu.com -I