linux下Nginx負載均衡的搭建
1.Nginx簡介
Nginx(發音同 engine x)是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev(伊戈爾·西索夫)所開發,供俄國大型的入口網站及搜索引擎Rambler(漫步者)(俄文:Рамблер)使用。其特點是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:新浪、網易、 騰訊等。
優點:
1:可運行linux,並有 Windows 移植版。
2:在高連接併發的情況下,Nginx是Apache服務器不錯的替代品Nginx在美國是做虛擬主機生意的老闆們經常選擇的軟件平臺之一。能夠支持高達 50,000 個併發連接數的響應
2.Nginx應用場景
1、http服務器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態服務器。2、虛擬主機。可以實現在一臺服務器虛擬出多個網站。例如個人網站使用的虛擬主機。
3、反向代理,負載均衡。當網站的訪問量達到一定程度後,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集羣可以使用nginx做反向代理。並且多臺服務器可以平均分擔負載,不會因爲某臺服務器負載高宕機而某臺服務器閒置的情況。
3.概念解釋
3.1正向代理
所謂正向代理其實就和我們平時所做的翻牆一樣,例如:當我們想要訪問某些國外的**網站時,因爲某些原因我們無法訪問到,這時候我們就可以找代理,代理有能力訪問到那個網站,而我們只需要訪問代理。就可以得到那個網站的內容了。且代理可以決定是否將用戶信息告訴給網站。
總的來說正向代理是一個位於客戶端與原始服務器之間的一個代理服務器,爲了從原始服務器獲取內容,客戶端向代理髮送一個請求並指定目標服務器(原始服務器),然後代理服務器向原始服務器轉交請求並獲取內容交給目標服務器,客戶端必須進行特殊的設置才能使用正向代理。
如下圖所示:(圖片是網上找的)
3.2反向代理
與正向代理相反,舉個例子:當用戶訪問某個服務器下的內容時,其實該服務器並無此內容,但是該服務器通過反向代理從另一臺服務器中獲取到了用戶想要的內容,並返回給了用戶。用戶以爲是在此服務器下獲取到的內容,其實並不是。
總的來說,反向代理用戶不需要進行特殊的設置,對用戶來說他以爲訪問得到的內從是從原始服務器中得到的。其實是客戶端向反向代理的命名空間中發送普通請求,接着反向代理將判斷向何處(原始服務器)轉交請求,並將獲得的內容返回給客戶端,就像這些內容 原本就是它自己的一樣。 如圖所示
4.安裝Nginx
一、安裝編譯工具及庫文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
二、首先要安裝 PCRE
PCRE 作用是讓 Nginx 支持 Rewrite 功能。
1、下載 PCRE 安裝包,下載地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
2、解壓安裝包:
[root@bogon src]# tar zxvf pcre-8.35.tar.gz
3、進入安裝包目錄
[root@bogon src]# cd pcre-8.35
4、編譯安裝
[root@bogon pcre-8.35]# ./configure [root@bogon pcre-8.35]# make && make install
5、查看pcre版本
[root@bogon pcre-8.35]# pcre-config --version
安裝 Nginx
1、下載 Nginx,下載地址:http://nginx.org/download/nginx-1.6.2.tar.gz
wget http://nginx.org/download/nginx-1.6.2.tar.gz2、解壓安裝包
[root@bogon src]# tar zxvf nginx-1.6.2.tar.gz
3、進入安裝包目錄
[root@bogon src]# cd nginx-1.6.2
4、編譯安裝
[root@bogon nginx-1.6.2]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 [root@bogon nginx-1.6.2]# make [root@bogon nginx-1.6.2]# make install
5、查看nginx版本
[root@bogon nginx-1.6.2]# /usr/local/webserver/nginx/sbin/nginx -v
檢查配置文件ngnix.conf的正確性命令:
[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx -t
啓動 Nginx
Nginx 啓動命令如下:
[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx
改ip或端口
訪問
5.搭建負載均衡
5.1 什麼是負載均衡
負載均衡 建立在現有網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。
負載均衡,英文名稱爲Load Balance,其意思就是分攤到多個操作單元上進行執行,例如Web服務器、FTP服務器、企業關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工作任務。
5.2 負載均衡的優點
簡單的來說。可以減少服務器的壓力,將原本一臺服務器所要承受的訪問量分給了多臺,並提高了項目的可用性,當一臺服務器掛掉的時候也不會導致整個項目癱瘓。
5.3 nginx實現負載均衡
nginx作爲負載均衡服務器,用戶請求先到達nginx,再由nginx根據負載配置將請求轉發至 tomcat服務器。
nginx負載均衡服務器:192.168.14.129
tomcat1服務器:192.168.14.131
tomcat2服務器:192.168.14.134
我們將兩個相同的項目分別放到了131與134服務器中,當我們通過129負載訪問項目接口時,nginx會自動將請求輪流分配給131與134來執行。
5.4 配置
以vim模式打開nginx.conf配置文件
cd /usr/local/nginx/conf/
vi nginx.conf
- 1
- 2
根據上邊的需求在nginx.conf文件中配置負載均衡,如下:
#在server上添加此upstream節點
upstream mytomcat{
#分權 即訪問131與134的次數比例爲1比1
server 192.168.14.131:8080 weight=1;
server 192.168.14.134:8080 weight=1;
}
server {
listen 80;
server_name localhost;
#即所有請求都到這裏去找分配
location / {
#使用mytomcat分配規則,即剛自定義添加的upstream節點
proxy_pass http://mytomcat;
}
}