HA-Proxy+Nginx實現web負載均衡(nginx篇)

本文分兩篇,一篇nginx配置,一篇haproxy配置,此文爲nginx的配置


實驗環境:                         

HAProxy  IP:10.2.18.219 Centos6.4-64bit
Web1 IP:10.2.16.254 Centos6.4-64bit           
Web2 IP:10.2.16.253 Centos6.4-64bit

vlan互通,兩臺web事先做好nginx,兩臺web配置一模一樣

有關nginx介紹不再多說,下面直接講安裝配置


本例用nginx-1.6.0版本


首先安裝依賴

yum -y install pcre*     (本機所需依賴僅爲pcre,可根據編譯提示自行選擇安裝依賴)


解壓安裝nginx:

tar -zxvf nginx-1.6.0.tar.gz  -C ./


mkdir  /usr/local/nginx      #創建nginx根目錄


cd nginx-1.6.0


./configure   --prefix=/usr/local/nginx

make  && make install


安裝完成後,修改配置文件


 Nginx配置文件主要分成四部分:main(全局設置)、server(主機設置)、upstream(負載均衡服務器設置)和 location(URL匹配特定位置的設置)。main部分設置的指令將影響其他所有設置;server部分的指令主要用於指定主機和端口;upstream指令主要用於負載均衡,設置一系列的後端服務器;location部分用於匹配網頁位置。這四者之間的關係式:server繼承main,location繼承server,upstream既不會繼承其他設置也不會被繼承。


vim  nginx.conf     #以下爲本例中的nginx配置,比較簡單:


user  nobody;       #指定Nginx Worker進程運行用戶以及用戶組,默認由nobody賬號運行。      

worker_processes  5;   #指定了Nginx要開啓的進程數。每個Nginx進程平均耗費10M~12M內存。根據經驗,一般指定一個進程足夠了,如果是多核CPU,建議指定和CPU的數量一樣的進程數即可。

error_log  logs/error.log  notice;   #用來定義全局錯誤日誌文件。日誌輸出級別有debug、info、notice、warn、error、crit可供選擇,其中,debug輸出日誌最爲最詳細,而crit輸出日誌最少。

pid        logs/nginx.pid;   #指定pid文件位置


events {                      #events指令是設定Nginx的工作模式及連接數上限。

    use epoll;                #指定Nginx的工作模式爲epoll。 Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。其中select和poll都是標準的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平臺上,而kqueue用在BSD系統中。對於Linux系統,epoll工作模式是首選。

    worker_connections  1024;   #用於定義Nginx每個進程的最大連接數,默認爲1024

}

       #最大客戶端連接數由上面定義的worker_processes和此worker_connections決定,即最大連接數=worker_processes*worker_connections,在作爲反向代理時,最大連接數 = worker_processes * worker_connections/4
進程的最大連接數受Linux系統進程的最大打開文件數限制,在執行操作系統命令“ulimit -n 65536”後worker_connections的設置才能生效。

http {                                         #HTTP服務器設置

    include       mime.types;

    default_type  application/octet-stream;    #日誌格式的設定

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;         #指定訪問日誌的路徑

    sendfile        on;                        #開啓高效文件傳輸模式

    keepalive_timeout  60;   #客戶端連接保持活動的超時時間。在超過這個時間之後,服務器會關閉該連接。

    gzip  on;                                  #開啓GZIP壓縮,實時壓縮輸出數據流

    gzip_min_length  1100;         #允許壓縮的頁面最小字節數,頁面字節數從header頭的Content-Length中獲取。默認值是0,不管頁面多大都進行壓縮。建議設置成大於1K的字節數,小於1K可能會越壓越大。   

    gzip_buffers     4 8k;         #申請4個單位爲8K的內存作爲壓縮結果流緩存,默認值是申請與原始數據大小相同的內存空間來存儲gzip壓縮結果。

    gzip_types     text/plain;   #指定壓縮的類型,無論是否指定,“text/html”類型總是會被壓縮的。 

    output_buffers   1 32k;        

    postpone_output  1460;

    


    server {                                  #虛擬主機配置

        listen       80;                      #指定虛擬主機的服務端口

        server_name  10.2.16.254  www.czy.com; #指定IP地址或者域名,多個域名之間用空格分開

        charset utf8;                          #指定網頁默認編碼格式

        access_log  logs/czy.access.log  main;  #指定虛擬主機的日誌文件

        location / {                            #URL匹配配置(URL地址匹配是進行Nginx配置中最靈活的部分,location支持正則表達式匹配,也支持條件判斷匹配,用戶可以通過location指令實現Nginx對動、靜態網頁進行過濾處理。

            root   html;                        #指定網頁文件存放文件夾

            index  index.html index.htm;        #首頁文件

        }


        error_page   500 502 503 504  /50x.html;  #設置了虛擬主機的錯誤信息返回頁面

        location = /50x.html {                    #error_page指令可以定製各種錯誤信息的返回頁面。特別需要注意的是,這些錯誤信息的返回頁面大小一定要超過512K

            root   html;                        #指定網頁文件存放文件夾    

        }

       }

 }


:wq

保存退出,nginx配置文件至此完成!


啓動nginx:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf


啓動成功後,同樣的操作在另一臺web2服務器上,兩臺nginx都配置完成後,再配置HA-proxy。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章