1. 程式人生 > >linux伺服器叢集部署:之nginx配置

linux伺服器叢集部署:之nginx配置

如果要配置幾臺linux叢集~
肯定要配置一下負載均衡~~
這裡我是用nginx做負載~~
其實還有其他一類的東西~~貌似很多公司採用nginx
反正我用這個~
我貌似記得好像在某本書上寫的nginx的併發在5w左右~~
首先配置了一臺接入伺服器~~
整個伺服器叢集都採用的linux
但是為了安全只做了一臺擁有外網環境的電腦
作為接入伺服器我就把nginx裝到上面了

nginx簡單的一些配置

首先是nginx配置的頭部(這部分基本可以省略~~)

//執行使用者為nginx,你也可以寫root
user nginx;
//設定為“auto”自動檢測它,通常設定為系統核心數量
worker_processes auto; //錯誤日誌位置 error_log /var/log/nginx/error.log; pid /run/nginx.pid;

其他配置
worker_connections設定可由一個worker程序同時開啟的最大連線數。

events {
worker_connections 2048;
multi_accept on;
use epoll;
}

配置你的負載均衡列表
weigth表示權重,權重越大分配比例越大

upstream www.me.com {
    server 192.168.1.3:8080 weight=1;
    server
192.168.2.3:8080 weight=1; server 192.168.3.3:8080 weight=2; }

http其他配置

#server_tokens 並不會讓nginx執行的速度更快,但它可以關閉在錯誤頁面中的nginx版本數字,這樣對於安全性是有好處的。

#sendfile 指令指定 nginx 是否呼叫 sendfile 函式(zero copy 方式)來輸出檔案,對於普通應用,
    #必須設為 on,如果用來進行下載等應用磁碟IO重負載應用,可設定為 off,以平衡磁碟與網路I/O處理速度,降低系統的uptime.
    sendfile        on
; #tcp_nopush on; #連線超時時間 #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; #開啟gzip壓縮 gzip on; gzip_disable "MSIE [1-6]\.(?!.*SV1)";//相容IE6 #設定請求緩衝 client_header_buffer_size 1k; large_client_header_buffers 4 4k;

重點設定如下
設定監聽埠和訪問的方式

server {
        listen       80;
        server_name  www.me.com;

設定訪問的負載均衡處理

location / {

     root   html;
     index  index.html index.htm;
     proxy_pass   http://www.me.com;//這是個列表

還可以配置一下靜態檔案的處理,就可以不用tomcat處理靜態檔案了,這個地方是可以用正則表示式的~~

    location ^~ /resources/ {//靜態檔案請求目錄
        root   /data/mm/;//靜態檔案存放目錄
        expires 30d;//過期時間
    }

如果是如上配置的話,如果你想在你程式碼層面上要拿到使用者訪問的ip地址是拿不到的~~~~基本上都是本地迴環地址
一些其他配置~~

#後端的Web伺服器可以通過X-Forwarded-For獲取使用者真實IP
          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;  #nginx跟後端伺服器連線超時時間(代理連線超時)
          proxy_send_timeout 90;        #後端伺服器資料回傳時間(代理髮送超時)
          proxy_read_timeout 90;         #連線成功後,後端伺服器響應時間(代理接收超時)
          proxy_buffer_size 4k;             #設定代理伺服器(nginx)儲存使用者頭資訊的緩衝區大小
          proxy_buffers 4 32k;               #proxy_buffers緩衝區,網頁平均在32k以下的話,這樣設定
          proxy_busy_buffers_size 64k;    #高負荷下緩衝大小(proxy_buffers*2)
          proxy_temp_file_write_size 64k;  #設定快取資料夾大小,大於這個值,將從upstream伺服器傳

然後執行
nginx -s reload
大功告成