1. 程式人生 > >Nginx詳細配置(含負載均衡)

Nginx詳細配置(含負載均衡)

1.安裝nginx服務

@安裝pcre(Nginx的Urlrewrite模組依賴PCRE)

        # tar zxvf pcre-8.12.tar.gz

        # cd pcre-8.12

        # ./configure --prefix=/usr/local/webserver/pcre  (--prefix=路徑,需要裝到哪個路徑下根據自己實際情況填寫

)

        # make 

#make install(預設到此結束,但有時候安裝nginx會報錯,需要繼續執行以下內容)

複製到pcre目錄

        # cp /usr/local/webserver/pcre/lib/libpcre.a  /usr/local/webserver/pcre/libpcre.a

        # cp /usr/local/webserver/pcre/lib/libpcre.la  /usr/local/webserver/pcre/libpcre.la

        # cp /usr/local/webserver/pcre/include/pcre.h  /usr/local/webserver/pcre/pcre.h

建立.libs資料夾

        # mkdir /usr/local/webserver/pcre/.libs

            複製到.lib資料夾

        # cp /usr/local/webserver/pcre/lib/libpcre.a  /usr/local/webserver/pcre/.libs/libpcre.a

      #cp  /usr/local/webserver/pcre/lib/libpcre.la  /usr/local/webserver/pcre/.libs/libpcre.la

      # cp  /usr/local/webserver/pcre/include/pcre.h  /usr/local/webserver/pcre/.libs/pcre.h

               

 

@安裝nginx /usr/local/nginx

        # tar zxvf nginx-1.0.10.tar.gz

        # cd nginx-1.0.10

        #./configure --user=root(nignx所屬的使用者) --prefix=/usr/local/webserver/nginx (nginx安裝路徑) --with-http_stub_status_module  --with-http_ssl_module  --with-pcre=/usr/local/webserver/pcre(上面安裝的pcre的路徑)

        # vi objs/Makefile

                查詢configure --disable-shared,刪除./configure --disable-shared, 儲存

        #make && make install

 

2. 進入nginx中的conf資料夾,配置nginx.conf

user  root;         #設定使用者設定成root 使用者賦給他最大許可權

worker_processes  1; #工作程序,根據硬體調整,根據機器CPU可以配置多個程序

 

#error_log  logs/error.log; 

#error_log  logs/error.log  notice;

error_log  /var/log/nginx/nginx_error.log  crit; #錯誤日誌,自由定義

pid        /usr/local/webserver/nginx/nginx.pid;   #pid檔案位置,自由定義

 

 

events {

    use epoll;  #指定事件響應模式為為高效的 poll 模式

    worker_connections  51200;  #工作程序的最大連線數量,根據硬體調整,和前面工作程序配合起來用,儘量大,但是別把cpu跑到100%就可以

}

 

 

http {

    include       mime.types;

default_type  application/octet-stream;

#default_type  text/html;   #根據實際情況而定用哪種格式

 

    #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;

    #tcp_nopush     on;

 

    #keepalive_timeout  0;

    keepalive_timeout  65;

 

    #gzip  on;

   #upstream的負載均衡(如果不需要可以不配置)weight是權重,可以根據機器配置定義權重。據說nginx可以根據後臺響應時間調整。後臺需要多個web伺服器。

   upstream test{

      #這裡指定多個源伺服器,ip:,80埠的話可寫可不寫

     server 192.168.0.2:7001  weight=2;

     server 192.168.0.2:7002  weight=3;

# weight為權重,代表請求分發的百分比,預設為 1. 上述配置,第一臺機器的權重為

2/5 即將 40%的請求分給7001 .

 

   }

      # Server 節點就是一個虛擬主機

    server {

        listen       80;(nginx監聽的埠)

        server_name  192.168.0.2;(nginx過濾的ip或者域名)

        location / {

            root   /apps/FSM_CMS;(響應的服務包存放位置)

            index  index.html index.jsp;(預設的響應介面)

        }

(靜態檔案,nginx自己處理)

        location    ~* \.(gif|jpg|png|bmp|ico|rar|css|js|zip|txt|flv|swf|mid|doc|ppt|xls|pdf|mp3|wma)$ {

      

            root /apps/FSM_CMS/;(靜態檔案存放位置)

        # expires 30d; (過期時間,30,可適量調整)

                            }      

location ~ (\.jsp)|(\.do) {

    proxy_pass  http://192.168.1.1:8080/; #.jsp.do的請求轉發給weblogic處理

 

            proxy_set_header    X-Real-IP  $remote_addr; #保留客戶端請求的真實 IP 地址,用於某些訪問統計

            proxy_set_header    Host       $host;  #保留客戶端請求的域名資訊

            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

            proxy_buffer_size 4k; #設定代理伺服器(nginx)儲存使用者頭資訊的緩衝區大小

            proxy_buffers 4 32k;  #proxy_buffer緩衝區,網頁平均在32k以下的話,這樣設定

            proxy_busy_buffers_size 64k;  #高負荷下緩衝大小 proxy_buffers*2

        proxy_temp_file_write_size 64k;

#設定快取資料夾大小,大於這個值,將從 upstream 伺服器當代理下載的檔案超過該引數設定的大小,nginx會先將檔案寫入臨時目錄 (預設為

  nginx 安裝目下/proxy_temp   目錄),

            proxy_max_temp_file_size 512m;

        }

 

        #error_page  404              /404.html;

 

        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

# 定義錯誤提示頁面

        location = /50x.html {

            root   html;

        }

 

             #禁止訪問 .htxxx 檔案

        #location ~ /\.ht {

        #    deny  all;

        #}

    }

}

 

 3) 檢視配置是否成功

/usr/local/webserver/nginx/sbin/nginx  –t  –c  /usr/local/webserver/nginx/conf/nginx.conf

成功的話會提示success 否的話提示failed;

進入nginx資料夾中的sbin資料夾

啟動nginx命令  cd /usr/local/webserver/nginx/sbin/  執行   ./nginx   

停止nginx  ./nginx –s  stop    重啟./nginx  -s  reload

 

  1. 檢視啟動結果

檢視啟動程序

[[email protected] html]# ps -ef | grep nginx   

     root          31930          1    0 15:00 ?                00:00:00 nginx: master process nginx  nobody      31931 31930    0 15:00 ?                00:00:00 nginx: worker proces  nobody      31932 31930    0 15:00 ?                00:00:00 nginx: worker proces  nobody      31933 31930    0 15:00 ?                00:00:00 nginx: worker process nobody      31934 31930    0 15:00 ?                00:00:00 nginx: worker process nobody      31935 31930    0 15:00 ?                00:00:00 nginx: worker process 

瀏覽器輸入http://localhost檢視nginx啟動情況

 

完畢!