中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx配置參數中文說明的示例分析

發布時間:2021-06-08 11:41:34 來源:億速云 閱讀:193 作者:小新 欄目:服務器

小編給大家分享一下Nginx配置參數中文說明的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

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

Nginx配置參數中文詳細說明

#定義Nginx運行的用戶和用戶組
user www www;
#
#nginx進程數,建議設置為等于CPU總核心數.
worker_processes 8;
#
#全局錯誤日志定義類型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;
#
#進程文件
pid /var/run/nginx.pid;
#
#一個nginx進程打開的最多文件描述符數目,理論值應該是最多打開文件數(系統的值ulimit -n)與nginx進程數相除,但是nginx分配請求并不均勻,所以建議與ulimit -n的值保持一致.
worker_rlimit_nofile 65535;
#
#工作模式與連接數上限
events
{
    #參考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本內核中的高性能網絡I/O模型,如果跑在FreeBSD上面,就用kqueue模型.
    use epoll;
    #單個進程最大連接數(最大連接數=連接數*進程數)
    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是否調用sendfile函數來輸出文件,對于普通應用設為 on,如果用來進行下載等應用磁盤IO重負載應用,可設置為off,以平衡磁盤與網絡I/O處理速度,降低系統的負載.注意:如果圖片顯示不正常把這個改成off.
    tcp_nopush on; #防止網絡阻塞
    tcp_nodelay on; #防止網絡阻塞
    #
    keepalive_timeout 120; #(單位s)設置客戶端連接保持活動的超時時間,在超過這個時間后服務器會關閉該鏈接
    #
    #FastCGI相關參數是為了改善網站的性能:減少資源占用,提高訪問速度.下面參數看字面意思都能理解.
    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; #允許壓縮的頁面的最小字節數,頁面字節數從header偷得content-length中獲取.默認是0,不管頁面多大都進行壓縮.建議設置成大于1k的字節數,小于1k可能會越壓越大
    gzip_buffers 4 16k; #表示申請4個單位為16k的內存作為壓縮結果流緩存,默認值是申請與原始數據大小相同的內存空間來存儲gzip壓縮結果
    gzip_http_version 1.1; #壓縮版本(默認1.1,目前大部分瀏覽器已經支持gzip解壓.前端如果是squid2.5請使用1.0)
    gzip_comp_level 2; #壓縮等級.1壓縮比最小,處理速度快.9壓縮比最大,比較消耗cpu資源,處理速度最慢,但是因為壓縮比最大,所以包最小,傳輸速度快
    gzip_types text/plain application/x-javascript text/css application/xml;
    #壓縮類型,默認就已經包含text/html,所以下面就不用再寫了,寫上去也不會有問題,但是會有一個warn.
    gzip_vary on;#選項可以讓前端的緩存服務器緩存經過gzip壓縮的頁面.例如:用squid緩存經過nginx壓縮的數據
    #
    #開啟限制IP連接數的時候需要使用
    #limit_zone crawler $binary_remote_addr 10m;
    #
    ##upstream的負載均衡,四種調度算法(下例主講)##
    #
    #虛擬主機的配置
    server
    {
        #監聽端口
        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狀態的地址.StubStatus模塊能夠獲取Nginx自上次啟動以來的工作狀態,此模塊非核心模塊,需要在Nginx編譯安裝時手工指定才能使用
        location /NginxStatus {
            stub_status on;
            access_log on;
            auth_basic "NginxStatus";
            auth_basic_user_file conf/htpasswd;
            #htpasswd文件的內容可以用apache提供的htpasswd工具來產生.
        }
    }
}

Nginx多臺服務器實現負載均衡

Nginx負載均衡服務器:

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

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

http
{
  ##upstream的負載均衡,四種調度算法##
  #調度算法1:輪詢.每個請求按時間順序逐一分配到不同的后端服務器,如果后端某臺服務器宕機,故障系統被自動剔除,使用戶訪問不受影響
  upstream webhost {
    server 192.168.1.2:80 ;
    server 192.168.1.3:80 ;
  }
  #調度算法2:weight(權重).可以根據機器配置定義權重.權重越高被分配到的幾率越大
  upstream webhost {
    server 192.168.1.2:80 weight=2;
    server 192.168.1.3:80 weight=3;
  }
  #調度算法3:ip_hash. 每個請求按訪問IP的hash結果分配,這樣來自同一個IP的訪客固定訪問一個后端服務器,有效解決了動態網頁存在的session共享問題
  upstream webhost {
    ip_hash;
    server 192.168.1.2:80 ;
    server 192.168.1.3:80 ;
  }
  #調度算法4:url_hash(需安裝第三方插件).此方法按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,可以進一步提高后端緩存服務器的效率.Nginx本身是不支持url_hash的,如果需要使用這種調度算法,必須安裝Nginx 的hash軟件包
  upstream webhost {
    server 192.168.1.2:80 ;
    server 192.168.1.3:80 ;
    hash $request_uri;
  }
  #調度算法5:fair(需安裝第三方插件).這是比上面兩個更加智能的負載均衡算法.此種算法可以依據頁面大小和加載時間長短智能地進行負載均衡,也就是根據后端服務器的響應時間來分配請求,響應時間短的優先分配.Nginx本身是不支持fair的,如果需要使用這種調度算法,必須下載Nginx的upstream_fair模塊
  #
  #虛擬主機的配置(采用調度算法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; #允許客戶端請求的最大單文件字節數
      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服務器傳
    }
  }
}

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

本地單臺服務器實現動靜分離多端口反向代理配置
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
實現目的:
用戶訪問http://wangying.sinaapp.com,將其負載均衡到本地服務器的8080、8081、8082端口

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動態程序解析,所以靜態文件配置就不用設置了
  }
  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代替其內網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;
    }
    #所有靜態文件由nginx直接讀取
    #圖片緩存時間設置
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
      expires 10d;
    }
    #JS和CSS緩存時間設置
    location ~ .*\.(js|css)?$ {
      expires 1h;
    }
  }

下面是其他網友的補充

一、主配置段

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

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

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

2、性能優化相關的配置

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

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

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

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

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

二、事件相關的配置

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

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

#是否以master/worker模型來運行;調試時可以設置為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];

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

四、nginx作為web服務器使用的配置
http {}:由ngx_http_core_module模塊所引入
配置框架:
http {
    upstream {
        ...
    }
    server {
        location URL {
            root "/path/to/somedir"
            ...
        }#類似于httpd中的<Location>,用于定義URL與本地文件系統的映射關系
        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;
   
    #優化磁盤IO設置,指定nginx是否調用sendfile函數來輸出文件,普通應用設為on,下載等磁盤IO高的應用,可設為off
    sendfile on;
    #設置nginx在一個數據包里發送所有頭文件,而不是一個接一個的發送
    tcp_nopush on;
    #設置nginx不要緩存數據,而是一段一段的發送,
   
    #長連接的超時時長,默認為75s
    keepalive_timeout 30;
    #在一個長連接所能夠允許請求的最大資源數
    keepalive_requests 20;
    #為制定類型的User Agent禁用長連接
    keepalive_disable [msie6|safari|none];
    #是否對長連接使用TCP_NODELAY選項,不將多個小文件合并傳輸
    tcp_nodelay on;
    #讀取http請求報文首部的超時時長
    client_header_timeout #;
    #讀取http請求報文body部分的超時時長
    client_body_timeout #;
    #發送響應報文的超時時長
    send_timeout #;
   
    #設置用戶保存各種key的共享內存的參數,5m指的是5兆
    limit_conn_zone $binary_remote_addr zone=addr:5m;
    #為給定的key設置最大的連接數,這里的key是addr,設定的值是100,就是說允許每一個IP地址最多同時打開100個連接
    limit_conn addr 100;

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

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

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

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

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

    location [=|~|~*|^~] uri {...}
    功能:允許根據用戶請求的URI來匹配定義的個location,匹配到時,此請求將被相應的location配置塊中的配置所處理
    =:表示精確匹配檢查
    ~:正則表達式模式匹配檢查,區分字符大小寫
    ~*:正則表達式模式匹配檢查,不區分字符大小寫
    ^~:URI的前半部分匹配,不支持正則表達式
    !~:開頭表示區分大小寫的不匹配的正則
    !~*:開頭表示不區分大小寫的不匹配的正則
    /:通用匹配,任何請求都會被匹配到
    location / {
        #定義服務器的默認網站根目錄位置
        root html;
        #定義首頁索引文件的名稱
        index index.html index.htm;
        #引用反向代理的配置,配置文件目錄根據編譯參數而定
        #如果編譯時加入了--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的區別;
    location /images/ {
        root "/data/images"
    }
    //www.jb51.net/images/a.jpg <-- /data/images/images/a.jpg
    location /images/ {
        alias "/data/images/"
    }
    //www.jb51.net/images/a.jpg <-- /data/images/a.jpg
   

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

    #設定查看Nginx狀態的地址
    #只能定義在location中
    #htpasswd -c -m /etc/nginx/.htpasswd fansik(-c 參數第一次創建時使用)
    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 (當前所有處于打開狀態的連接數)
    server accepts handled requests
    174(已經接受進來的連接) 174(已經處理過的連接) 492(處理的請求,在保持連接模式下,請求數可能會多于連接數量)
    Reading: 0 Writing: 1 Waiting: 0
    Reading:正處于接受請求狀態的連接數
    Writing:請求接受完成,正處于處理請求或發送相應的過程中的連接數
    Waiting:保持連接模式,且處于活動狀態的連接數
   
    #基于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;
#后端服務器數據回傳時間(代理發送超時)
proxy_send_timeout 20;
#設置代理服務器(nginx)保存用戶頭信息的緩沖區大小
proxy_buffer_size 32k;
#proxy_buffers緩沖區,網頁平均在32k以下的設置
proxy_buffers 4 128k;
#高負荷下緩沖大小(proxy_buffers*2)
proxy_busy_buffers_size 256k;
#設定緩存文件夾大小,大于這個值,將從upstream服務器傳
proxy_temp_file_write_size 256k;
#1G內存緩沖空間,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是前面括號中的內容哦
//www.jb51.net/images/a/1.jpg --> //www.jb51.net/imgs/a/1.jpg
flag:
    last:一旦此rewrite規則重寫完成后,不再被后面其他的rewrite規則進行處理,
    而是由User Agent重新對重寫后的URL再一次發起請求,并從頭開始執行類似的過程。
    break:一旦此rewrite規則重寫完成之后,由User Agent對新的URL重新發起請求,
    且不會被當前location內的任何rewrite規則過檢查
    redirect:以302響應碼(臨時重定向)返回新的URL
    permanent:以301響應碼(永久重定向)返回新的URL

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

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

十、防盜鏈

location ~* \.(jpg|gif|jpeg|png)$ {
    valid_referer none blocked www.jb51.net;
    if ($invalid_referer) {
        rewrite ^/ //www.jb51.net/403.html;
    }
}

看完了這篇文章,相信你對“Nginx配置參數中文說明的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

敦煌市| 闻喜县| 彭州市| 仁布县| 石棉县| 永仁县| 靖安县| 达日县| 屏边| 双牌县| 秦安县| 蒙自县| 大石桥市| 大安市| 久治县| 滨州市| 宜宾县| 油尖旺区| 五河县| 蚌埠市| 娄底市| 汤阴县| 祥云县| 平湖市| 甘南县| 宁城县| 沁水县| 巴马| 临泽县| 修文县| 紫金县| 乌兰浩特市| 新竹县| 普安县| 扶余县| 新乐市| 沙坪坝区| 临朐县| 大名县| 福清市| 沙雅县|