久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    圖文解說:Nginx+tomcat配置負(fù)載均衡

     dire 2010-12-15
     開發(fā)的應(yīng)用采用F5負(fù)載均衡交換機(jī),F(xiàn)5將請(qǐng)求轉(zhuǎn)發(fā)給5臺(tái)hp unix服務(wù)器,每臺(tái)服務(wù)器有多個(gè)webserver實(shí)例,對(duì)外提供web服務(wù)和socket等接口服務(wù)。之初,曾有個(gè)小小的疑問為何不采用開源的apache、Nginx軟件負(fù)載,F(xiàn)5設(shè)備動(dòng)輒幾十萬,價(jià)格昂貴?自己一個(gè)比較幼稚的問題,后續(xù)明白:F5是操作于IOS網(wǎng)絡(luò)模型的傳輸層,Nginx、apache是基于http反向代理方式,位于ISO模型的第七層應(yīng)用層。直白些就是TCP UDP 和http協(xié)議的區(qū)別,Nginx不能為基于TCP協(xié)議的應(yīng)用提供負(fù)載均衡。


          了解了二者之間的區(qū)別于應(yīng)用場(chǎng)景,對(duì)Nginx產(chǎn)生濃厚的興趣,閱讀張宴的<實(shí)戰(zhàn)Nginx>(這個(gè)85年的小伙子年輕有為羨慕+妒忌),搞明白了大致原理和配置,Ubuntu10.10,window下對(duì)Nginx+tomcat負(fù)載均衡做了配置嘗試,將全部請(qǐng)求轉(zhuǎn)發(fā)到tomcat,并未做靜態(tài),動(dòng)態(tài)分開,圖片防盜鏈等配置。
    Nginx 介紹


         Nginx (發(fā)音同 engine x)是一款輕量級(jí)的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,并在一個(gè)BSD-like 協(xié)議下發(fā)行。  其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力確實(shí)在同類型的網(wǎng)頁伺服器中表現(xiàn)較好.目前中國(guó)大陸使用nginx網(wǎng)站用戶有:新浪、網(wǎng)易、 騰訊,另外知名的微網(wǎng)志Plurk也使用nginx。


        上面的全是Nginx介紹基本上是廢話,下面轉(zhuǎn)入正題,圖文結(jié)合展示基本配置,首先是window環(huán)境、其次是Ubuntu環(huán)境(Vbox虛擬)。本文主要基于Nginx下配置兩臺(tái)tomcat,結(jié)構(gòu)如下圖:

     

    Window xp環(huán)境:Nginx+Tomcat6

    1、下載地址

           http:///en/download.html,這里我們推薦下載穩(wěn)定版(stable versions),本文采用nginx-0.8.20。


    2、目錄結(jié)構(gòu)


          Nginx-

                   |_  conf   配置目錄

                   |_  contrib

                   |_  docs 文檔目錄

                   |_  logs  日志目錄

                   |_  temp 臨時(shí)文件目錄

                   |_  html 靜態(tài)頁面目錄

                   |_  nginx.exe 主程序


          window下安裝Nginx極其簡(jiǎn)單,解壓縮到一個(gè)無空格的英文目錄即可(個(gè)人習(xí)慣,擔(dān)心中文出問題),雙擊nginx啟動(dòng),這里我安裝到:D:\server目錄,下面涉及到的tomcat也安裝在此目錄。

       

     

    DOS環(huán)境啟動(dòng)

     

     

    若果想停止nginx,dos環(huán)境運(yùn)行命令:nginx -s stop


    3、nginx.conf配置


       Nginx配置文件默認(rèn)在conf目錄,主要配置文件為nginx.conf,我們安裝在D:\server\nginx-0.8.20、默認(rèn)主配置文件為D:\server\nginx-0.8.20\nginx.conf。下面是nginx作為前端反向代理服務(wù)器的配置。

    Nginx.conf代碼 
    1. #Nginx所用用戶和組,window下不指定  
    2. #user  niumd niumd;  
    3.   
    4. #工作的子進(jìn)程數(shù)量(通常等于CPU數(shù)量或者2倍于CPU)  
    5. worker_processes  2;  
    6.   
    7. #錯(cuò)誤日志存放路徑  
    8. #error_log  logs/error.log;  
    9. #error_log  logs/error.log  notice;  
    10. error_log  logs/error.log  info;  
    11.   
    12. #指定pid存放文件  
    13. pid        logs/nginx.pid;  
    14.   
    15. events {  
    16.     #使用網(wǎng)絡(luò)IO模型linux建議epoll,F(xiàn)reeBSD建議采用kqueue,window下不指定。  
    17.     #use epoll;  
    18.       
    19.     #允許最大連接數(shù)  
    20.     worker_connections  2048;  
    21. }  
    22.   
    23. http {  
    24.     include       mime.types;  
    25.     default_type  application/octet-stream;  
    26.   
    27.         #定義日志格式  
    28.     #log_format  main  '$remote_addr - $remote_user [$time_local] $request '  
    29.     #                  '"$status" $body_bytes_sent "$http_referer" '  
    30.     #                  '"$http_user_agent" "$http_x_forwarded_for"';  
    31.   
    32.     #access_log  off;  
    33.     access_log  logs/access.log;  
    34.   
    35.     client_header_timeout  3m;  
    36.     client_body_timeout    3m;  
    37.     send_timeout           3m;  
    38.    
    39.     client_header_buffer_size    1k;  
    40.     large_client_header_buffers  4 4k;  
    41.   
    42.     sendfile        on;  
    43.     tcp_nopush      on;  
    44.     tcp_nodelay     on;  
    45.   
    46.     #keepalive_timeout  75 20;  
    47.   
    48.     include    gzip.conf;  
    49.     upstream localhost {  
    50.       #根據(jù)ip計(jì)算將請(qǐng)求分配各那個(gè)后端tomcat,許多人誤認(rèn)為可以解決session問題,其實(shí)并不能。  
    51.       #同一機(jī)器在多網(wǎng)情況下,路由切換,ip可能不同  
    52.       #ip_hash;   
    53.       server localhost:18081;  
    54.       server localhost:18080;  
    55.      }  
    56.   
    57.     server {  
    58.             listen       80;  
    59.             server_name  localhost;     
    60.   
    61.             location / {  
    62.                     proxy_connect_timeout   3;  
    63.                     proxy_send_timeout      30;  
    64.                     proxy_read_timeout      30;  
    65.                         proxy_pass http://localhost;  
    66.             }  
    67.               
    68.    }  
    69. }  

     
       代理設(shè)置如下:

    Proxy.conf代碼 
    1. proxy_redirect          off;  
    2. proxy_set_header        Host $host;  
    3. proxy_set_header        X-Real-IP $remote_addr;  
    4. proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;  
    5. client_max_body_size    10m;  
    6. client_body_buffer_size 128k;  
    7. proxy_connect_timeout   300;  
    8. proxy_send_timeout      300;  
    9. proxy_read_timeout      300;  
    10. proxy_buffer_size       4k;  
    11. proxy_buffers           4 32k;  
    12. proxy_busy_buffers_size 64k;  
    13. proxy_temp_file_write_size 64k;  

      

       gzip壓縮相關(guān)配置如下:

    Gzip.conf代碼 
    1. gzip              on;  
    2. gzip_min_length      1000;  
    3. gzip_types         text/plain text/css application/x-javascript;  

     
      4、Tomcat配置


       對(duì)于tomcat大家都很熟悉,只需要修改server.xml配置文件即可,這里我們以apache-tomcat-6.0.14為例,分別在server目錄,解壓縮并命名為:apache-tomcat-6.0.14_1、apache-tomcat-6.0.14_2。


        第一處端口修改:

    Xml代碼 
    1.   
    2. <Server port="18006" shutdown="SHUTDOWN">  

     
       第二處端口修改:

    Xml代碼 
    1.   
    2. <Connector port="18081" protocol="HTTP/1.1"   
    3.                connectionTimeout="20000"   
    4.                redirectPort="8443" />  
    5.   
    6.    

      

       第三處端口修改:

    Java代碼 
    1. "8009" protocol="AJP/1.3" redirectPort="8443" />  

      

       Engine元素增加jvmRoute屬性:

    Xml代碼 
    1. <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">  

     
        兩個(gè)tomcat的端口別重復(fù),保證能啟動(dòng)起來,另一個(gè)tomcat配置希捷省略,監(jiān)聽端口為18080,附件中我們將上傳所有的配置信息。


    5、驗(yàn)證配置與測(cè)試負(fù)載均衡


        首先測(cè)試nginx配置是否正確,測(cè)試命令:nginx -t  (默認(rèn)驗(yàn)證:conf\nginx.conf),也可以指定配置文件路徑。

     此例nginx安裝目錄:D:\server\nginx-0.8.20,dos環(huán)境下圖畫面成功示例:

      

       其次驗(yàn)證tomcat,啟動(dòng)兩個(gè)tomcat,不出現(xiàn)端口沖突即為成功(tomcat依賴的java等搞“挨踢”的就廢話不說了);

     

     

        最后驗(yàn)證配置負(fù)載均衡設(shè)置,http://localhost/http://localhost/index.jsp。我修改了index.jsp頁面,增加日志輸出信息,便于觀察。注意:左上角小貓頭上的:access tomcat2、access tomcat1。說明訪問了不同的tomcat。

      

     
         至此window下nginx+tomcat負(fù)載均衡配置結(jié)束,關(guān)于tomcat Session的問題通常是采用memcached,或者采用nginx_upstream_jvm_route ,他是一個(gè) Nginx 的擴(kuò)展模塊,用來實(shí)現(xiàn)基于 Cookie 的 Session Sticky 的功能。如果tomcat過多不建議session同步,server間相互同步session很耗資源,高并發(fā)環(huán)境容易引起Session風(fēng)暴。請(qǐng)根據(jù)自己應(yīng)用情況合理采納session解決方案。

     

    Ubuntu10.10環(huán)境:Nginx+Tomcat6


    我們下面簡(jiǎn)單說下ubuntu10.10下如何安裝配置,主要以圖片為主,簡(jiǎn)單解釋。

     

    1、下載Nginx

          地址:http:///en/download.html,linux版本:nginx-0.8.20.tar.。解壓縮命令:


    tar -zxvf nginx-0.8.20.tar.gz


    2、編譯安裝Nginx


         Nginx依賴一些其他PCRE、openssl(依賴libssl-dev),本人筆記本Ubuntu環(huán)境已經(jīng)安裝PCRE,僅需安裝依賴的openssl,下面我們簡(jiǎn)單說下如何安裝PCRE和openssl等


         PCRE下載地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/


     

    Shell代碼 
    1. tar zxvf  pcre-8.01.tar.gz  
    2. cd pcre-8.01  
    3. sudo ./configure  
    4. sodu make  
    5. sodu make install  

      

        openssl通過apt-get install安裝,命令、截圖如下:

    Shell代碼 
    1. sudo apt-get install openssl  
    2. sudo apt-get install libssl-dev  
    3. //如缺少其他包,請(qǐng)采用此方法安裝,ubuntu有依賴提示  

     

     
     依賴的軟件包安裝完畢,下面來編譯Nginx:

    Shell代碼 
    1. #將window共享目錄軟件拷貝到當(dāng)前工作目錄  
    2. cp /mnt/fileshare/nginx-0.8.20.tar.gz ./  
    3.   
    4. #解壓縮軟件包  
    5. tar zxvf nginx-0.8.20.tar.gz  
    6.   
    7.  cd nginx-0.8.20  
    8. //編譯源碼,默認(rèn)使用nobody,指定本機(jī)已存在的用戶,組,啟用nginx-status功能,監(jiān)控nginx狀態(tài)。啟動(dòng)debug  
    9.  sudo ./configure  --user=niumd --group=niumd --with-debug --with-http_stub_status_module   
    10.    
    11.   
    12. sudo make   
    13. sudo make install  

     
       截圖 如下:

     

    安裝結(jié)果截圖如下:

     

     

    編譯安裝正確結(jié)束,按照上述window下方法檢查默認(rèn)配置,然后在默認(rèn)配置下啟動(dòng)nginx,訪問http://127.0.0.1,如下圖說明成功

     

     

    Nginx配置成功后我們對(duì)window下nginx.conf少做修改,如下:

    Ubuntu nginx.conf代碼 
    1. #Nginx所用用戶和組  
    2. user  niumd niumd;  
    3.   
    4. #工作的子進(jìn)程數(shù)量(通常等于CPU數(shù)量或者2倍于CPU)  
    5. worker_processes  2;  
    6.   
    7. #錯(cuò)誤日志存放路徑  
    8. #error_log  logs/error.log;  
    9. #error_log  logs/error.log  notice;  
    10. error_log  logs/error.log  info;  
    11.   
    12. #指定pid存放文件  
    13. pid        logs/nginx.pid;  
    14.   
    15. events {  
    16.   #使用網(wǎng)絡(luò)IO模型linux建議epoll,F(xiàn)reeBSD建議采用kqueue  
    17.     use epoll;  
    18.       
    19.     #允許最大連接數(shù)  
    20.     worker_connections  2048;  
    21. }  
    22.   
    23. http {  
    24.     include       mime.types;  
    25.     default_type  application/octet-stream;  
    26.   
    27.   #定義日志格式  
    28.     #log_format  main  '$remote_addr - $remote_user [$time_local] $request '  
    29.     #                  '"$status" $body_bytes_sent "$http_referer" '  
    30.     #                  '"$http_user_agent" "$http_x_forwarded_for"';  
    31.   
    32.     #access_log  off;  
    33.     access_log  logs/access.log;  
    34.   
    35.     client_header_timeout  3m;  
    36.     client_body_timeout    3m;  
    37.     send_timeout           3m;  
    38.    
    39.     client_header_buffer_size    1k;  
    40.     large_client_header_buffers  4 4k;  
    41.   
    42.     sendfile        on;  
    43.     tcp_nopush      on;  
    44.     tcp_nodelay     on;  
    45.   
    46.     #keepalive_timeout  75 20;  
    47.   
    48.     include    gzip.conf;  
    49.     upstream localhost {  
    50.      #ip_hash  
    51.       #ip_hash;  
    52.       server localhost:18081;  
    53.       server localhost:18080;  
    54.      }  
    55.   
    56.     server {  
    57.             listen       80;  
    58.             server_name  localhost;     
    59.   
    60.             location / {  
    61.               proxy_connect_timeout   3;  
    62.               proxy_send_timeout      30;  
    63.               proxy_read_timeout      30;  
    64.                 proxy_pass http://localhost;  
    65.             }  
    66.               
    67.    }  
    68. }  

      對(duì)于上面關(guān)于ubuntu下Nginx配置和window下基本相同,區(qū)別在使用的IO網(wǎng)絡(luò)模型,linux下建議使用epoll,另外就是運(yùn)行所用的用戶和組;

      

    3、配置tomcat

        請(qǐng)參考window下配置,完全相同。

    4、啟動(dòng)停止nginx

        ubuntu下啟動(dòng)nginx與window稍有不同,大致啟動(dòng)停止方法如下。

     

    Java代碼 
    1. #nginx目錄執(zhí)行  
    2. sbin/nginx  
    3. 或通過-c 指定配置文件  
    4. sbin/nginx -c usr/local/nginx8.20/conf/nginx/conf  

     

        

    Shell代碼 
    1. niumd@niumd-laptop:/usr/local/nginx$ pwd  
    2. /usr/local/nginx  
    3. niumd@niumd-laptop:/usr/local/nginx$ sudo sbin/nginx -t  
    4. the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok  
    5. configuration file /usr/local/nginx/conf/nginx.conf test is successful  
    6. niumd@niumd-laptop:/usr/local/nginx$ sudo sbin/nginx -v  
    7. nginx version: nginx/0.8.20  
    8. niumd@niumd-laptop:/usr/local/nginx$ sudo sbin/nginx -V  
    9. nginx version: nginx/0.8.20  
    10. built by gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5)   
    11. configure arguments: --user=niumd --group=niumd --with-debug --with-http_sub_module  
    12. niumd@niumd-laptop:/usr/local/nginx$ sudo sbin/nginx   
    13. niumd@niumd-laptop:/usr/local/nginx$ ps -ef|grep nginx  
    14. root      5158     1  0 22:32 ?        00:00:00 nginx: master process sbin/nginx  
    15. niumd     5159  5158  0 22:32 ?        00:00:00 nginx: worker process  
    16. niumd     5161  1577  0 22:32 pts/0    00:00:00 grep --color=auto nginx  
    17. niumd@niumd-laptop:/usr/local/nginx$   

     

         我們通過ps  -ef|grep nginx,看到如下結(jié)果:

       

     

    注意:在啟動(dòng)時(shí)linux提示一句警告【warn】……,是因?yàn)槲覀冊(cè)O(shè)置的 #允許最大連接數(shù) worker_connections  2048,超過linux默認(rèn)1024的限制。

           停止:kill -信號(hào)類型 pid

           nginx/logs目錄下有個(gè)nginx。pid的文件,此文件記錄了每次運(yùn)行的pid,也可以通過ps命令查詢。

    信號(hào)類型如下:

           

                                                                                                                                                                                                       
    信號(hào)類型描述
    RERM.INT快速關(guān)閉
    HUP平滑重啟,加載配置
    USR1重新加載日志
    USER2平滑升級(jí)執(zhí)行程序
    WINCH從容關(guān)閉工作進(jìn)程
    QUIT從容關(guān)閉

     

    參考資料:

    http://www.oschina.net/bbs/thread/9301

    oschina.net 生產(chǎn)配置,此網(wǎng)站采用java語言,nginx,tomcat服務(wù)器。

    http:///

    張宴:<<實(shí)戰(zhàn)Nginx>>


     

      本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類似文章 更多

      主站蜘蛛池模板: 人人澡人摸人人添| 亚洲成人av在线资源| 精品少妇人妻AV无码久久 | 国产丰满乱子伦无码专区| 精品无码成人片一区二区| 亚洲av男人电影天堂热app| 深夜av在线免费观看| 国产高清在线不卡一区| 日韩丝袜欧美人妻制服| 55夜色66夜色国产精品视频 | 亚洲天堂精品一区二区| 无码抽搐高潮喷水流白浆| 丰满人妻被黑人猛烈进入| 性一交一乱一伦| 伊人成伊人成综合网222| 成码无人AV片在线电影网站| 亚洲熟女综合色一区二区三区| 国产欧美日韩精品丝袜高跟鞋| 成人又黄又爽又色的视频| 又大又长粗又爽又黄少妇视频| 亚洲 国产 制服 丝袜 一区| 伊人久久大香线蕉亚洲五月天| 亚洲欧美中文日韩V在线观看| 国产第一页浮力影院入口| 国内揄拍国内精品人妻 | 性饥渴少妇AV无码毛片| 麻豆亚洲精品一区二区| 欧美日韩精品一区二区三区不卡| 亚洲精品一区二区美女| 中文成人无码精品久久久| 国产边打电话边被躁视频| 国产在线中文字幕精品| 国产成人亚洲精品无码青APP| 男人猛进出女人下面视频| 日本高清视频网站www| 中文字幕无码中文字幕有码A| 亚洲国产良家在线观看| 麻豆成人精品国产免费| 久久久国产精品VA麻豆| 国产午夜亚洲精品不卡网站| 国内精品一区二区不卡|