nginx主要配置

用戶流量通過nginx端的分流到多個tomcat實例上,下面介紹一下nginx經常使用的配置文件nginx.conf
 
//運行worker進程的用戶
user  xxx;
//啓動的進程數量,一般設置爲和cpu核數一致
worker_processes  8;
//worker進程的最大打開文件數限制,須要設置的高,不然文件描述符會不夠用。
worker_rlimit_nofile 102400;

//錯誤日誌
error_log  /var/logs/error.log;
//pid文件
pid        /var/logs/nginx.pid;

//events模塊包含nginx中關於鏈接的部分
events {
    //一個worker進程能夠同時打開的最大鏈接數目,這個數目須要和worker_rlimit_nofile協調。socket佔用一個文件描述符
    worker_connections  1024;
    //採用epoll方式處理高併發鏈接,不寫的話會默認選擇最好的方式。
    user epoll;
}


http {
    //include 做用就是複製文件內容到所在位置
    //文件擴展名與文件類型映射表,nginx根據映射關係,設置http請求響應頭的content-type值,在映射表中找不到的時候使用default_type
    include       mime.types;
    default_type  application/octet-stream;

    //log格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    log_format  welove  '$remote_addr [$time_local] $host $request $status $body_bytes_sent request_time: $request_time   upstream_response_time: $upstream_response_time $http_accept_language';

    #access_log  logs/access.log  main;
    access_log   off;

    //linux sendfile api能夠減小內核和用戶層面的拷貝次數,加快效率。
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    gzip_min_length 1k;
    gzip_types text/plain application/x-javascript text/css application/xml application/json;

    //server_tag字段用於設置response裏面的Server字段,能夠用來隱藏服務器的一些信息
    server_tag UGuess;
    
    deny 11.11.11.11;

    #fastcgi_intercept_errors on;

    upstream welove520 {
        server 127.0.0.1:8080 weight=10;
        server 192.168.1.1:8080 weight=10;
    }

    //定義了虛擬主機
    server {
        //監聽的端口
        listen       80;
        //監聽的域名
        //nginx基於域名和IP來混合進行定位,當不匹配的時候或者只有一個server的時候默認採用第一個server
        //這裏用localhost是不對的(對於咱們服務來講),可是因爲是默認的server因此沒有問題。
        // http://tengine.taobao.org/nginx_docs/cn/docs/http/request_processing.html
        server_name  localhost;
        access_log off;
        //location用於匹配URI
        location / {
                proxy_pass   http://welove520; //請求轉發給welove520指定的服務器列表

                //設置一些header,後端tomcat工程能夠獲取這些值
                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       15m;
                proxy_connect_timeout      150;
                proxy_send_timeout         150;
                proxy_read_timeout         150;
                proxy_next_upstream        error timeout invalid_header http_500;
                proxy_buffer_size          32k;
                proxy_buffers              32 64k;
                proxy_busy_buffers_size    128k;
        }
    }
}
在nginx中將流量經過upstream模塊導到後端tomcat服務器上,而後在服務器上處理用戶請求並返回。

參考資料:http://tengine.taobao.org/nginx_docs/cn/docs/http/request_processing.htmljavascript

相關文章
相關標籤/搜索