Nginx 상용 모듈

8950 단어
Nginx 상용 모듈
1. ngx_http_autoindex_module
# ngx_http_autoindex_module         (' / ')     ,         。
#   , ngx_http_index_module          ,      ngx_http_autoindex_module  。
`# Example 
location / {
    autoindex on;
}
`#            。
autoindex                               
# Syntax:   autoindex on | off;
# Default:  autoindex off;
# Context:  http, server, location

`#   HTML  ,                   
autoindex_exact_size            
# Syntax:   autoindex_exact_size on | off;
# Default:  autoindex_exact_size on;
# Context:  http, server, location

`#          。
autoindex_format                    
# Syntax:   autoindex_format html | xml | json | jsonp;
# Default:  autoindex_format html;
# Context:  http, server, location
# This directive appeared in version 1.7.9. 

`#   HTML  ,                   UTC   。
autoindex_localtime             
# Syntax:   autoindex_localtime on | off;
# Default:  autoindex_localtime off;
# Context:  http, server, location

2.ngx_http_access_module
# ngx_http_access_module                 。
#          、      JWT   。             satisfy    。
`# Example 
location / {
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}
#        ,            。
#   ,     IPv4  10.1.1.0/16 192.168.1.0/24,     192.168.1.1,   IPv6  2001:0db8::/32。
#       ,    ngx_http_geo_module    。
`#             。        unix:(1.5.1),       unix    。
allow           
# Syntax:   allow address | CIDR | unix: | all;
# Default:  —
# Context:  http, server, location, limit_except

`#             。        unix:(1.5.1),      unix       
deny            
# Syntax:   deny address | CIDR | unix: | all;
# Default:  —
# Context:  http, server, location, limit_except

3.ngx_http_auth_basic_module
# ngx_http_auth_basic_module      “HTTP      ”          ,          。
#         、      JWT   。             satisfy    。
`# Example 
location / {
    auth_basic           "closed site";
    auth_basic_user_file conf/htpasswd;
}
`#     “HTTP      ”          。
`#         。         (1.3.10,1.2.7)。   off              auth_basic     。
auth_basic  
# Syntax:   auth_basic string | off;
# Default:  auth_basic off;
# Context:  http, server, location, limit_except

`#                ;
auth_basic_user_file    
# Syntax:   auth_basic_user_file file;
# Default:  —
# Context:  http, server, location, limit_except
`# Format password file
# comment
name1:password1
name2:password2:comment
name3:password3

`# Example
[root@web107 ~]# htpasswd -bc /etc/nginx/conf/htpasswd old 123
[root@web107 ~]# cat /etc/nginx/conf/htpasswd 
old:$apr1$Bse9UVLa$rLFQhUf7Fdi0EtBvldov9.

4.ngx_http_core_module –>limit_rate –>limit_rate_after
#       
#       ,    ,                 
`# Example 
map $slow $rate {
    1     4k;
    2     8k;
}
limit_rate $rate;
#    $limit_rate         
server {
    if ($slow) {
        set $limit_rate 4k;
    }
    ...
}
#                 “X-Accel-Limit-Rate”      。
#     proxy_ignore_headers、fastcgi_ignore_headers、uwsgi_ignore_headers scgi_ignore_headers       。


`# Example:
    location /flv/ {
        flv;
        limit_rate_after 500k;
        limit_rate       50k;
    }
`#              。          。        。
`#              ,                 ,               。
limit_rate
# Syntax:   limit_rate rate;
# Default:  limit_rate 0;
# Context:  http, server, location, if in location

`#      ,    ,                 。
limit_rate_after 
# Syntax:   limit_rate_after size;
# Default:  limit_rate_after 0;
# Context:  http, server, location, if in location

5.ngx_http_limit_req_module
# ngx_http_limit_req_module  (0.7.21)                 ,       IP         。
#        “  ”     。
`# Example
http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
    ...
    server {
        ...
        location /search/ {
            limit_req zone=one burst=5;
        }
`#                   。                 ,         ,             。
`#          ,                ,      ,         。     ,         。
limit_req
# Syntax:   limit_req zone=name [burst=number] [nodelay | delay=number];
# Default:  —
# Context:  http, server, location

`#   ,  
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
    location /search/ {
        limit_req zone=one burst=5;
    }
#              ,       5 。
-------------------------------------------------------------------------------------------------------
$binary_remote_addr     #    remote_addr        ,“binary_”           ,        ip  
zone=one:10m                    #         10M,   one     ,           
rate=1r/s                           #                 ,        1 ,          

zone=one #               ,   limit_req_zone   name  
burst=5  #           ,burst     ,               5          (  )   ,
                 #                          ,             5 ,         503       。
-------------------------------------------------------------------------------------------------------
`#                      ,       nodelay:
limit_req zone=one burst=5 nodelay;
# delay  (1.15.7)            。     ,    ,            。
#     delay  ,        (burst + rate)      ,    (burst + rate)         503,
#               。(   rate    :r/s)
#       ,            
-------------------------------------------------------------------------------------------------------
`#      limit_req  。  ,            IP          ,                :
limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s;
limit_req_zone $server_name zone=perserver:10m rate=10r/s;
server {
    ...
    limit_req zone=perip burst=5 nodelay;
    limit_req zone=perserver burst=10;
}

#            limit_req   ,          。
`#        。      ,          ,  ,        ,           。
limit_req_dry_run
# Syntax:   limit_req_dry_run on | off;
# Default:  limit_req_dry_run off;
# Context:  http, server, location

`#                                       。
`#                     1 ;  ,     “limit_req_log_level  ”,   info      。
limit_req_log_level
# Syntax:   limit_req_log_level info | notice | warn | error;
# Default:  limit_req_log_level error;
# Context:  http, server, location

`#                。
limit_req_status
# Syntax:   limit_req_status code;
# Default:  limit_req_status 503;
# Context:  http, server, location

`#                       。   ,             。
`#         、      。          。
limit_req_zone
# Syntax:   limit_req_zone key zone=name:size rate=rate [sync];
# Default:  —
# Context:  http

6.ngx_http_limit_conn_module
# ngx_http_limit_conn_module                ,       IP      。
#               。                           ,       。
`# Example
http {
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    ...
    server {
        ...
        location /download/ {
            limit_conn addr 1;
        }
`#                      。       ,             。
limit_conn
# Syntax:   limit_conn zone number;
# Default:  —
# Context:  http, server, location

`#   ,  
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
    location /download/ {
        limit_conn addr 1;
    }
#        IP       。
#  HTTP/2 SPDY ,                。

`#      limit_conn  。  ,             IP         ,               :
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server {
    ...
    limit_conn perip 10;
    limit_conn perserver 100;
}
#            limit_conn   ,          。

`#                      。
limit_conn_log_level
# Syntax:   limit_conn_log_level info | notice | warn | error;
# Default:  limit_conn_log_level error;
# Context:  http, server, location

`#                。
limit_conn_status
# Syntax:   limit_conn_status code;
# Default:  limit_conn_status 503;
# Context:  http, server, location

7.ngx_http_stub_status_module
# ngx_http_stub_status_module              。
#            ,     ——with-http_stub_status_module       。
`# Example
location = /basic_status {
    stub_status;
}

`#             web  ,           ,    :
Active connections: 291 
server accepts handled requests
 16630948 16630948 31070465 
Reading: 6 Writing: 179 Waiting: 106 
# Active connections             ,         。

# accepts            。
# handled        。
# requests         。

# Reading              。
# Writing               。
# Waiting                。
`#                。
stub_status
# Syntax:   stub_status;
# Default:  —
# Context:  server, location

좋은 웹페이지 즐겨찾기