一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - Nginx配置參數(shù)中文說明詳解(負載均衡與反向代理)

Nginx配置參數(shù)中文說明詳解(負載均衡與反向代理)

2020-07-27 19:14chenai Nginx

最近在看高性能Linux服務器構建實戰(zhàn)的Nginx章節(jié),對其nginx介紹的非常詳細,現(xiàn)把經(jīng)常用到的Nginx配置參數(shù)中文說明摘錄和nginx做負載均衡的本人真實演示實例抄錄下來以便以后查看

PS:最近在看<<高性能Linux服務器構建實戰(zhàn)>>的Nginx章節(jié),對其nginx介紹的非常詳細,現(xiàn)把經(jīng)常用到的Nginx配置參數(shù)中文說明摘錄和nginx做負載均衡的本人真實演示實例抄錄下來以便以后查看!

Nginx配置參數(shù)中文詳細說明

#定義Nginx運行的用戶和用戶組
user www www;
#
#nginx進程數(shù),建議設置為等于CPU總核心數(shù).
worker_processes 8;
#
#全局錯誤日志定義類型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;
#
#進程文件
pid /var/run/nginx.pid;
#
#一個nginx進程打開的最多文件描述符數(shù)目,理論值應該是最多打開文件數(shù)(系統(tǒng)的值ulimit -n)與nginx進程數(shù)相除,但是nginx分配請求并不均勻,所以建議與ulimit -n的值保持一致.
worker_rlimit_nofile 65535;
#
#工作模式與連接數(shù)上限
events
{
    #參考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本內(nèi)核中的高性能網(wǎng)絡I/O模型,如果跑在FreeBSD上面,就用kqueue模型.
    use epoll;
    #單個進程最大連接數(shù)(最大連接數(shù)=連接數(shù)*進程數(shù))
    worker_connections 65535;
}
#
#設定http服務器
http
{
    include mime.types; #文件擴展名與文件類型映射表
    default_type application/octet-stream; #默認文件類型
    #charset utf-8; #默認編碼
    server_names_hash_bucket_size 128; #服務器名字的hash表大小
    client_header_buffer_size 32k; #上傳文件大小限制
    large_client_header_buffers 4 64k; #設定請求緩
    client_max_body_size 8m; #設定請求緩
    #
    #開啟目錄列表訪問,合適下載服務器,默認關閉.
    autoindex on;                   #顯示目錄
    autoindex_exact_size on;        #顯示文件大小 默認為on,顯示出文件的確切大小,單位是bytes 改為off后,顯示出文件的大概大小,單位是kB或者MB或者GB
    autoindex_localtime on;         #顯示文件時間 默認為off,顯示的文件時間為GMT時間 改為on后,顯示的文件時間為文件的服務器時間
    #
    sendfile on; #開啟高效文件傳輸模式,sendfile指令指定nginx是否調(diào)用sendfile函數(shù)來輸出文件,對于普通應用設為 on,如果用來進行下載等應用磁盤IO重負載應用,可設置為off,以平衡磁盤與網(wǎng)絡I/O處理速度,降低系統(tǒng)的負載.注意:如果圖片顯示不正常把這個改成off.
    tcp_nopush on; #防止網(wǎng)絡阻塞
    tcp_nodelay on; #防止網(wǎng)絡阻塞
    #
    keepalive_timeout 120; #(單位s)設置客戶端連接保持活動的超時時間,在超過這個時間后服務器會關閉該鏈接
    #
    #FastCGI相關參數(shù)是為了改善網(wǎng)站的性能:減少資源占用,提高訪問速度.下面參數(shù)看字面意思都能理解.
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
    #
    #gzip模塊設置
    gzip on; #開啟gzip壓縮輸出
    gzip_min_length 1k; #允許壓縮的頁面的最小字節(jié)數(shù),頁面字節(jié)數(shù)從header偷得content-length中獲取.默認是0,不管頁面多大都進行壓縮.建議設置成大于1k的字節(jié)數(shù),小于1k可能會越壓越大
    gzip_buffers 4 16k; #表示申請4個單位為16k的內(nèi)存作為壓縮結果流緩存,默認值是申請與原始數(shù)據(jù)大小相同的內(nèi)存空間來存儲gzip壓縮結果
    gzip_http_version 1.1; #壓縮版本(默認1.1,目前大部分瀏覽器已經(jīng)支持gzip解壓.前端如果是squid2.5請使用1.0)
    gzip_comp_level 2; #壓縮等級.1壓縮比最小,處理速度快.9壓縮比最大,比較消耗cpu資源,處理速度最慢,但是因為壓縮比最大,所以包最小,傳輸速度快
    gzip_types text/plain application/x-javascript text/css application/xml;
    #壓縮類型,默認就已經(jīng)包含text/html,所以下面就不用再寫了,寫上去也不會有問題,但是會有一個warn.
    gzip_vary on;#選項可以讓前端的緩存服務器緩存經(jīng)過gzip壓縮的頁面.例如:用squid緩存經(jīng)過nginx壓縮的數(shù)據(jù)
    #
    #開啟限制IP連接數(shù)的時候需要使用
    #limit_zone crawler $binary_remote_addr 10m;
    #
    ##upstream的負載均衡,四種調(diào)度算法(下例主講)##
    #
    #虛擬主機的配置
    server
    {
        #監(jiān)聽端口
        listen 80;
        #域名可以有多個,用空格隔開
        server_name wangying.sinaapp.com;
        index index.html index.htm index.php;
        root /data/www/;
        location ~ .*\.(php|php5)?$
        {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
        #圖片緩存時間設置
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
            expires 10d;
        }
        #JS和CSS緩存時間設置
        location ~ .*\.(js|css)?$ {
            expires 1h;
        }

        #日志格式設定
        log_format access '$remote_addr - $remote_user [$time_local] "$request" '
        '$status $body_bytes_sent "$http_referer" '
        '"$http_user_agent" $http_x_forwarded_for';
        #定義本虛擬主機的訪問日志
        access_log /var/log/nginx/access.log access;
        #
        #設定查看Nginx狀態(tài)的地址.StubStatus模塊能夠獲取Nginx自上次啟動以來的工作狀態(tài),此模塊非核心模塊,需要在Nginx編譯安裝時手工指定才能使用
        location /NginxStatus {
            stub_status on;
            access_log on;
            auth_basic "NginxStatus";
            auth_basic_user_file conf/htpasswd;
            #htpasswd文件的內(nèi)容可以用apache提供的htpasswd工具來產(chǎn)生.
        }
    }
}

Nginx多臺服務器實現(xiàn)負載均衡

Nginx負載均衡服務器:

IP:192.168.1.1
Web服務器列表:
Web1:192.168.1.2
Web2:192.168.1.3

實現(xiàn)目的:用戶訪問192.168.1.1服務器時,通過Nginx負載均衡到Web1和Web2服務器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
http
{
  ##upstream的負載均衡,四種調(diào)度算法##
  #調(diào)度算法1:輪詢.每個請求按時間順序逐一分配到不同的后端服務器,如果后端某臺服務器宕機,故障系統(tǒng)被自動剔除,使用戶訪問不受影響
  upstream webhost {
    server 192.168.1.2:80 ;
    server 192.168.1.3:80 ;
  }
  #調(diào)度算法2:weight(權重).可以根據(jù)機器配置定義權重.權重越高被分配到的幾率越大
  upstream webhost {
    server 192.168.1.2:80 weight=2;
    server 192.168.1.3:80 weight=3;
  }
  #調(diào)度算法3:ip_hash. 每個請求按訪問IP的hash結果分配,這樣來自同一個IP的訪客固定訪問一個后端服務器,有效解決了動態(tài)網(wǎng)頁存在的session共享問題
  upstream webhost {
    ip_hash;
    server 192.168.1.2:80 ;
    server 192.168.1.3:80 ;
  }
  #調(diào)度算法4:url_hash(需安裝第三方插件).此方法按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,可以進一步提高后端緩存服務器的效率.Nginx本身是不支持url_hash的,如果需要使用這種調(diào)度算法,必須安裝Nginx 的hash軟件包
  upstream webhost {
    server 192.168.1.2:80 ;
    server 192.168.1.3:80 ;
    hash $request_uri;
  }
  #調(diào)度算法5:fair(需安裝第三方插件).這是比上面兩個更加智能的負載均衡算法.此種算法可以依據(jù)頁面大小和加載時間長短智能地進行負載均衡,也就是根據(jù)后端服務器的響應時間來分配請求,響應時間短的優(yōu)先分配.Nginx本身是不支持fair的,如果需要使用這種調(diào)度算法,必須下載Nginx的upstream_fair模塊
  #
  #虛擬主機的配置(采用調(diào)度算法3:ip_hash)
  server
  {
    listen 80;
    server_name wangying.sinaapp.com;
    #對 "/" 啟用反向代理
    location / {
      proxy_pass http://webhost;
      proxy_redirect off;
      proxy_set_header X-Real-IP $remote_addr;
      #后端的Web服務器可以通過X-Forwarded-For獲取用戶真實IP
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      #以下是一些反向代理的配置,可選.
      proxy_set_header Host $host;
      client_max_body_size 10m; #允許客戶端請求的最大單文件字節(jié)數(shù)
      client_body_buffer_size 128k; #緩沖區(qū)代理緩沖用戶端請求的最大字節(jié)數(shù),
      proxy_connect_timeout 90; #nginx跟后端服務器連接超時時間(代理連接超時)
      proxy_send_timeout 90; #后端服務器數(shù)據(jù)回傳時間(代理發(fā)送超時)
      proxy_read_timeout 90; #連接成功后,后端服務器響應時間(代理接收超時)
      proxy_buffer_size 4k; #設置代理服務器(nginx)保存用戶頭信息的緩沖區(qū)大小
      proxy_buffers 4 32k; #proxy_buffers緩沖區(qū),網(wǎng)頁平均在32k以下的設置
      proxy_busy_buffers_size 64k; #高負荷下緩沖大小(proxy_buffers*2)
      proxy_temp_file_write_size 64k;
      #設定緩存文件夾大小,大于這個值,將從upstream服務器傳
    }
  }
}

測試篇
域名:wangying.sinaapp.com
分別解析到192.168.1.1
客戶訪問這三個站點的時候,Nginx根據(jù)客戶訪問的ip_hash值,負載均衡到Web1和Web2服務器上
虛擬主機的配置

本地單臺服務器實現(xiàn)動靜分離多端口反向代理配置
Nginx負載均衡服務器:
IP:192.168.1.1:80
Web服務器(同臺機器)列表:
Web1:192.168.1.1:8080
Web1:192.168.1.1:8081
Web1:192.168.1.1:8082
實現(xiàn)目的:
用戶訪問http://wangying.sinaapp.com,將其負載均衡到本地服務器的8080、8081、8082端口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
http
{
  #因為服務器負載均衡到本地的8080、8081、8082端口,所以本地要增開8080,8081,8082端口作腳本解析
  server {
    listen    8080;
    server_name  wangying.sinaapp.com;
    root /mnt/hgfs/vmhtdocs/fastdfs/;
 
    location ~ \.php$ {
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include    fastcgi_params;
    }
    #由于下面80端口可知,8080,8081,8082只負責php動態(tài)程序解析,所以靜態(tài)文件配置就不用設置了
  }
  server {
    listen    8081;
    server_name  wangying.sinaapp.com;
    root /mnt/hgfs/vmhtdocs/fastdfs/;
    index index.php index.html index.htm;
    location ~ \.php$ {
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include    fastcgi_params;
    }
  }
  #8082的可仿照上面的server配置只是修改listen即可
  #
  #本地多端口負載均衡配置#
  #因為是一臺服務器,所以可以127.0.0.1代替其內(nèi)網(wǎng)ip
  #upstream 后面的主機名只是一個標識而已,可以是某個詞語,也可以是域名,它與 proxy_pass http://webhost 相對應相同即可
  upstream webhost {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
    server 127.0.0.1:8082;
  }
  #本地80端口,接受請求做負載均衡
  server
  {
    listen 80;
    server_name wangying.sinaapp.com;
    #本地動靜分離反向代理配置
    #所有php的頁面均交由本地fastcgi處理
    location ~ \.php$ {
      proxy_pass http://webhost;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    #所有靜態(tài)文件由nginx直接讀取
    #圖片緩存時間設置
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
      expires 10d;
    }
    #JS和CSS緩存時間設置
    location ~ .*\.(js|css)?$ {
      expires 1h;
    }
  }

下面是其他網(wǎng)友的補充

一、主配置段

1、正常運行必備的配置
#運行用戶和組,組身份可以省略
user nginx nginx;

#指定nginx守護進程的pid文件
pid path/to/nginx.pid;

#指定所有worker進程所能打開的最大文件句柄數(shù)
worker_rlimit_nofile 100000;

2、性能優(yōu)化相關的配置

#worker進程的個數(shù),通常應該略少于CPU物理核心數(shù),也可以使用auto自動獲取
worker_processes auto;

#CPU的親緣性綁定(同樣是無法避免CPU的上下文的切換的)
#優(yōu)點:提升緩存的命中率
#context switch:會產(chǎn)生CPU不必要的消耗

#http://blog.chinaunix.net/uid-20662363-id-2953741.html
work_cpu_affinity  00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

#計時器解析度(請求到達nginx,nginx相應用戶請求后,要獲取系統(tǒng)時間并記錄日志,高并發(fā)的時候可能每秒鐘獲取很多很多次)
#降低此值,可以減少gettimeofday()系統(tǒng)調(diào)用的次數(shù)
timer_resolution 100ms;

#指明worker進程的nice值:數(shù)字越小,優(yōu)先級越高
#nice值范圍:-20,19
#對應的優(yōu)先級:100,139
worker_priority number;

二、事件相關的配置

events {
    #master調(diào)度用戶請求至個worker進程時使用的負載均衡鎖:on表示能讓多個worker輪流地、序列化的響應新請求
    accept_mutex {off|on}
   
    #延遲等待時間,默認為500ms
    accept_mutex_delay time;
   
    #accept_mutex用到的鎖文件路徑
    lock_file file;
   
    #指明使用的時間模型:建議讓Nginx自行選擇
    use [epoll|rtsig|select|poll];
   
    #單個worker進程打開的最大并發(fā)連接數(shù),worker_processes*worker_connections
    worker_connections 2048;
   
    #告訴nginx收到一個新鏈接通知后接受盡可能多的鏈接
    multi_accept on;   
}

三、用于調(diào)試、定位問題
#是否以守護進程方式運行nginx;調(diào)試時應該設置為off
daemon {on|off}

#是否以master/worker模型來運行;調(diào)試時可以設置為off
master_process {on|off}

#error_log 位置 級別,若要使用debug,需要在編譯nginx時使用--with-debug選項
error_log file | stderr | syslog:server=address[,parameter=value] | memory:size [debug|info|notice|warn|error|crit|alert|emerg];

總結:常需要調(diào)整的參數(shù):worker_processes, worker_connections,work_cpu_affinity,worker_priority
新改動配置生效方式:
nginx -s reload其他參數(shù)stop,quit,reopen也可以使用nginx -h查看到

四、nginx作為web服務器使用的配置
http {}:由ngx_http_core_module模塊所引入
配置框架:
http {
    upstream {
        ...
    }
    server {
        location URL {
            root "/path/to/somedir"
            ...
        }#類似于httpd中的<Location>,用于定義URL與本地文件系統(tǒng)的映射關系
        location URL {
            if ... {
                ...
            }
        }
    }#每個server類似于httpd中的一個<VirtualHost>
    server {
        ...
    }
}
注意:與http相關的額指令僅能夠防止與http、server、location、upstream、if上下文,但有些指令僅應用于這5種上下文的某些種。

http {
    #打開或關閉錯誤頁面中的nginx版本號
    server_tokens on;
    #!server_tag on;
    #!server_info on;
   
    #優(yōu)化磁盤IO設置,指定nginx是否調(diào)用sendfile函數(shù)來輸出文件,普通應用設為on,下載等磁盤IO高的應用,可設為off
    sendfile on;
    #設置nginx在一個數(shù)據(jù)包里發(fā)送所有頭文件,而不是一個接一個的發(fā)送
    tcp_nopush on;
    #設置nginx不要緩存數(shù)據(jù),而是一段一段的發(fā)送,
   
    #長連接的超時時長,默認為75s
    keepalive_timeout 30;
    #在一個長連接所能夠允許請求的最大資源數(shù)
    keepalive_requests 20;
    #為制定類型的User Agent禁用長連接
    keepalive_disable [msie6|safari|none];
    #是否對長連接使用TCP_NODELAY選項,不將多個小文件合并傳輸
    tcp_nodelay on;
    #讀取http請求報文首部的超時時長
    client_header_timeout #;
    #讀取http請求報文body部分的超時時長
    client_body_timeout #;
    #發(fā)送響應報文的超時時長
    send_timeout #;
   
    #設置用戶保存各種key的共享內(nèi)存的參數(shù),5m指的是5兆
    limit_conn_zone $binary_remote_addr zone=addr:5m;
    #為給定的key設置最大的連接數(shù),這里的key是addr,設定的值是100,就是說允許每一個IP地址最多同時打開100個連接
    limit_conn addr 100;

    #include指在當前文件中包含另一個文件內(nèi)容
    include mime.types;
    #設置文件使用默認的mine-type
    default_type text/html;
    #設置默認字符集
    charset UTF-8;

    #設置nginx采用gzip壓縮的形式發(fā)送數(shù)據(jù),減少發(fā)送數(shù)據(jù)量,但會增加請求處理時間及CPU處理時間,需要權衡
    gzip on;
    #加vary給代理服務器使用,針對有的瀏覽器支持壓縮,有個不支持,根據(jù)客戶端的HTTP頭來判斷是否需要壓縮
    gzip_vary on;
    #nginx在壓縮資源之前,先查找是否有預先gzip處理過的資源
    #!gzip_static on;
    #為指定的客戶端禁用gzip功能
    gzip_disable "MSIE[1-6]\.";
    #允許或禁止壓縮基于請求和相應的響應流,any代表壓縮所有請求
    gzip_proxied any;
    #設置對數(shù)據(jù)啟用壓縮的最少字節(jié)數(shù),如果請求小于10240字節(jié)則不壓縮,會影響請求速度
    gzip_min_length 10240;
    #設置數(shù)據(jù)壓縮等級,1-9之間,9最慢壓縮比最大
    gzip_comp_level 2;
    #設置需要壓縮的數(shù)據(jù)格式
    gzip_types text/plain text/css text/xml text/javascript  application/json application/x-javascript application/xml application/xml+rss;

    #開發(fā)緩存的同時也指定了緩存文件的最大數(shù)量,20s如果文件沒有請求則刪除緩存
    open_file_cache max=100000 inactive=20s;
   
    #指多長時間檢查一次緩存的有效信息
    open_file_cache_valid 60s;
   
    #文件緩存最小的訪問次數(shù),只有訪問超過5次的才會被緩存
    open_file_cache_min_uses 5;
   
    #當搜索一個文件時是否緩存錯誤信息
    open_file_cache_errors on;

    #允許客戶端請求的最大單文件字節(jié)數(shù)
    client_max_body_size 8m;
   
    #沖區(qū)代理緩沖用戶端請求的最大字節(jié)數(shù)
    client_header_buffer_size 32k;
   
    #引用/etc/nginx/vhosts下的所有配置文件,如果主機名眾多的情況下可以每個主機名建立一個文件,以方便管理
    include /etc/nginx/vhosts/*;
}

五、虛擬主機設定模塊
#負載均衡服務器列表(本人通常把負載均衡類別配置在相應的虛擬主機的配置文件中)
upstream fansik {
    #后端服務器訪問規(guī)則
    ip_hash;
    #weight參數(shù)表示權重值,權值越高被分配到的幾率越大
    server 192.168.1.101:8081 weight=5;
    server 192.168.1.102:8081 max_fails=3 fail_timeout=10s;
}
server {
    #監(jiān)聽80端口
    listen 80;
    #定義主機名,主機名可以有多個,名稱還可以使用正則表達式(~)或通配符
    #(1)先做精確匹配檢查
    #(2)左側通配符匹配檢查:*.fansik.com
    #(3)右側通配符匹配檢查:mail.*
    #(4)正則表達式匹配檢查:如~^.*\.fansik\.com$
    #(5)detault_server
    server_name m.ythuaji.com.cn;
    #設定本虛擬主機的訪問日志
    access_log logs/m.ythuaji.com.cn.access.log;

    location [=|~|~*|^~] uri {...}
    功能:允許根據(jù)用戶請求的URI來匹配定義的個location,匹配到時,此請求將被相應的location配置塊中的配置所處理
    =:表示精確匹配檢查
    ~:正則表達式模式匹配檢查,區(qū)分字符大小寫
    ~*:正則表達式模式匹配檢查,不區(qū)分字符大小寫
    ^~:URI的前半部分匹配,不支持正則表達式
    !~:開頭表示區(qū)分大小寫的不匹配的正則
    !~*:開頭表示不區(qū)分大小寫的不匹配的正則
    /:通用匹配,任何請求都會被匹配到
    location / {
        #定義服務器的默認網(wǎng)站根目錄位置
        root html;
        #定義首頁索引文件的名稱
        index index.html index.htm;
        #引用反向代理的配置,配置文件目錄根據(jù)編譯參數(shù)而定
        #如果編譯時加入了--conf-path=/etc/nginx/nginx.conf指定了配置文件的路徑那么就把proxy.conf放在/etc/nginx/目錄下
        #如果沒有制定配置文件路徑那么就把proxy.conf配置放到nginx的conf目錄下
        include proxy.conf;   
        #定義后端負載服務器組
        proxy_pass http://fansik;
    }
    alias path和root path的區(qū)別;
    location /images/ {
        root "/data/images"
    }
    //m.ythuaji.com.cn/images/a.jpg <-- /data/images/images/a.jpg
    location /images/ {
        alias "/data/images/"
    }
    //m.ythuaji.com.cn/images/a.jpg <-- /data/images/a.jpg
   

    #定義錯誤提示頁面
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root html;
    }

    #設定查看Nginx狀態(tài)的地址
    #只能定義在location中
    #htpasswd -c -m /etc/nginx/.htpasswd fansik(-c 參數(shù)第一次創(chuàng)建時使用)
    location /Status {
        stub_status on;
        allow all;
        #access_log off;
        #allow 192.168.1.0/24;
        #deny all;
        #auth_basic "Status";
        #auth_basic_user_file /etc/nginx/.htpasswd;
    }
    status結果實例說明:
    Active connections: 1 (當前所有處于打開狀態(tài)的連接數(shù))
    server accepts handled requests
    174(已經(jīng)接受進來的連接) 174(已經(jīng)處理過的連接) 492(處理的請求,在保持連接模式下,請求數(shù)可能會多于連接數(shù)量)
    Reading: 0 Writing: 1 Waiting: 0
    Reading:正處于接受請求狀態(tài)的連接數(shù)
    Writing:請求接受完成,正處于處理請求或發(fā)送相應的過程中的連接數(shù)
    Waiting:保持連接模式,且處于活動狀態(tài)的連接數(shù)
   
    #基于IP的訪問控制
    allow IP/Netmask
    deny IP/Netmask
    location ~ /\.ht {
        deny all;
    }
}

六、反向代理的配置(反向代理的配置通常放在單獨的配置文件中proxy.conf,通過include引用)

proxy_redirect off;
#后端的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;
#nginx跟后端服務器連接超時時間(代理連接超時)
proxy_connect_timeout 60;
#連接成功后,后端服務器響應時間(代理接收超時)
proxy_read_timeout 120;
#后端服務器數(shù)據(jù)回傳時間(代理發(fā)送超時)
proxy_send_timeout 20;
#設置代理服務器(nginx)保存用戶頭信息的緩沖區(qū)大小
proxy_buffer_size 32k;
#proxy_buffers緩沖區(qū),網(wǎng)頁平均在32k以下的設置
proxy_buffers 4 128k;
#高負荷下緩沖大小(proxy_buffers*2)
proxy_busy_buffers_size 256k;
#設定緩存文件夾大小,大于這個值,將從upstream服務器傳
proxy_temp_file_write_size 256k;
#1G內(nèi)存緩沖空間,3天不用刪除,最大磁盤緩沖空間2G
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=cache_one:1024m inactive=3d max_size=2g;

七、https服務的配置

server {
        listen       443 ssl;
        server_name  test.fansik.cn;
        ssl_certificate      100doc.cn.crt;
        ssl_certificate_key  100doc.cn.key;    
        ssl_session_cache    shared:SSL:1m;
        ssl_protocols SSLv2 SSLv3 TLSv1;
        ssl_session_timeout  5m;       
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers  on;      
        location / {
                root /data/app
                index  index.html index.htm;
        }
}

八、url地址重寫
rewrite regex replacment flag
例如:rewrite ^/images/(.*\.jpg)$ /imgs/$1 break;#$1是前面括號中的內(nèi)容哦
//m.ythuaji.com.cn/images/a/1.jpg --> //m.ythuaji.com.cn/imgs/a/1.jpg
flag:
    last:一旦此rewrite規(guī)則重寫完成后,不再被后面其他的rewrite規(guī)則進行處理,
    而是由User Agent重新對重寫后的URL再一次發(fā)起請求,并從頭開始執(zhí)行類似的過程。
    break:一旦此rewrite規(guī)則重寫完成之后,由User Agent對新的URL重新發(fā)起請求,
    且不會被當前l(fā)ocation內(nèi)的任何rewrite規(guī)則過檢查
    redirect:以302響應碼(臨時重定向)返回新的URL
    permanent:以301響應碼(永久重定向)返回新的URL

九、if判斷
語法:if (condition) {...}
應用環(huán)境:server,location
condition:
(1)變量名:
變量值為空串,或者以"0"開始,則為false,其他的均為true
(2)以變量為操作數(shù)構成的比較表達式
可以使用=,!=類似的比較操作符進行測試
(3)正則表達式的模式匹配操作
~:區(qū)分大小寫的模式匹配檢查
~*:不區(qū)分大小寫的模式匹配檢查
!~和!~*:對上面兩種測試取反
(4)測試路徑為文件可能性:-f ,~-f
(5)測試制定路徑為目錄的可能性:-d,!-d
(6)測試文件存在性:-e,!-e
(7)檢查文件是否有執(zhí)行權限:-x,!-x
例如:

if($http_user_agent ~* MSIE){
    rewrite ^(.*)$ /msie/$1 break;
}

十、防盜鏈

location ~* \.(jpg|gif|jpeg|png)$ {
    valid_referer none blocked m.ythuaji.com.cn;
    if ($invalid_referer) {
        rewrite ^/ //m.ythuaji.com.cn/403.html;
    }
}

總結:

最后推薦一個深入學習Nginx的網(wǎng)站:

http://tengine.taobao.org/book/index.html

到此這篇關于Nginx配置參數(shù)中文說明詳解(負載均衡與反向代理)的文章就介紹到這了,更多相關Nginx參數(shù)中文解釋內(nèi)容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:http://wangying.sinaapp.com/archives/931

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91大神在线精品播放 | 国产成人青草视频 | 九九热视频免费观看 | 国产丰满美女做爰 | 羞羞影院午夜男女爽爽影院网站 | 国产目拍亚洲精品一区二区三区 | 小寡妇好紧进去了好大看视频 | 成人在线播放视频 | 午夜办公室在线观看高清电影 | 国产精品视频免费看 | 日韩精品视频美在线精品视频 | 好男人免费高清在线观看2019 | 九九精品视频在线观看 | 免费看日韩 | 欧美特黄视频在线观看 | 日韩在线a视频免费播放 | 美女撒尿毛片免费看 | 蛮荒的童话未删减在线观看 | narutotsunade全彩雏田 | 日本免费久久久久久久网站 | 很黄的网站在线观看 | 九九在线精品亚洲国产 | 激情三级hd中文字幕 | 亚洲欧美国产精品完整版 | 国产a一级毛片爽爽影院 | 四虎2021地址入口 | 古装床戏做爰无遮挡三级 | 欧美专区综合 | 国产精品日韩在线观看 | 亚洲精品欧洲久久婷婷99 | 久久AV国产麻豆HD真实 | 免费免费啪视频在线观播放 | 色综色天天综合网 | 麻豆视频免费在线播放 | 国产成人欧美 | 免费网站看v片在线成人国产系列 | 欧美视频网址 | 日韩精品成人 | 国产新疆成人a一片在线观看 | 每天都要睡男人(nph) | 日韩欧美国产一区 |