配置nginx到后端服务器负载均衡
nginx和haproxy一樣也可以做前端請(qǐng)求分發(fā)實(shí)現(xiàn)負(fù)載均衡效果,比如一個(gè)tomcat服務(wù)如果并發(fā)過(guò)高會(huì)導(dǎo)致處理很慢,新來(lái)的請(qǐng)求就會(huì)排隊(duì),到一定程度時(shí)請(qǐng)求就可能會(huì)返回錯(cuò)誤或者拒絕服務(wù),所以通過(guò)負(fù)載均衡使用多個(gè)后端服務(wù)器處理請(qǐng)求,是比較有效的提升性能的方法;另外當(dāng)單機(jī)性能優(yōu)化到一定瓶頸之后,一般也會(huì)用負(fù)載均衡做集群,配置也很簡(jiǎn)單,下面是配置過(guò)程:
首先需要安裝nginx服務(wù)器,我這里已經(jīng)安裝好了,比如這里有三個(gè)tomcat服務(wù)器,地址如下:
192.168.1.23 8080
? ? ? ?192.168.1.24 8080
? ? ? ?192.168.1.25 8080
其中nginx安裝在192.168.1.23上面,如果只有一個(gè)服務(wù)器測(cè)試,也可以在一個(gè)服務(wù)器上運(yùn)行多個(gè)tomcat開(kāi)多個(gè)端口來(lái)實(shí)現(xiàn),這樣也能提升性能
首先看nginx配置,在nginx.conf中http {}塊內(nèi)并且server {}塊之外添加如下配置:
upstream my_service {server 127.0.0.1:8080 weight=2;server 192.168.1.24:8080 weight=1;server 192.168.1.25:8080 weight=1; }上面的my_service是集群的名字,可以自己命名,server指定后端服務(wù)列表,weight是設(shè)置權(quán)重,權(quán)重越大,請(qǐng)求被分發(fā)過(guò)來(lái)的可能性就越大,這里本機(jī)權(quán)重設(shè)置了2,也就是說(shuō)對(duì)到達(dá)的請(qǐng)求分配到本地上的會(huì)多一些
配置這個(gè)之后,需要在server {}中添加location配置攔截請(qǐng)求并轉(zhuǎn)發(fā)給后端的集群,最簡(jiǎn)單的配置如下:
location / {proxy_pass http://my_service; proxy_redirect default; }這樣配置之后保存并重新載入,然后對(duì)于所有的請(qǐng)求都會(huì)轉(zhuǎn)發(fā)到這個(gè)集群指定的機(jī)器處理了,當(dāng)然也可以設(shè)置攔截具體的請(qǐng)求比如.do或者.action都可以根據(jù)需要設(shè)置;另外location里面也可以設(shè)置更多的配置項(xiàng),比如客戶端body大小,buffer大小,超時(shí)時(shí)間等,配置參考如下:
location / {proxy_pass http://my_service; proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;client_max_body_size 10m;client_body_buffer_size 128k;proxy_connect_timeout 90;proxy_send_timeout 90;proxy_read_timeout 90;proxy_buffer_size 4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k; }上面的配置可以參考,根據(jù)具體業(yè)務(wù)需要配置即可,nginx負(fù)載均衡的配置基本上就是上面這些
轉(zhuǎn)載于:https://www.cnblogs.com/freeweb/p/6513973.html
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的配置nginx到后端服务器负载均衡的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 二维码的生成
- 下一篇: 批量修改dos文件到unix