Nginx配置详情-配置说明-参数优化-核心HTTP配置(二)

前言:上一篇写到Nginx的基础配置,这一篇主要讲Nginx核心模块HTTP模块

1、虚拟主机与请求转发

  1. 监听端口
    配置块:server
    监听端口,由于ip地址数量有限,因此经常存在多个主机域名对应着同一个ip地址的情况,这时在nginx.conf中就可以按照server_name(对应用户请求中的域名)并通过server块来定义虚拟主机,每个server块就是一个虚拟主机,它只处理与之相应的主机域名请求,这样一台服务器上的nginx就能以不同的方式处理域名不同主机域名的HTTP请求了。
    示例:
    listem 127.0.0.1:8000;
    listem 127.0.0.1;#注意:不加端口时默认监听80端口
    listem 8000;
    listem *:8000;
    listem localhost:8000;
    配置块:server
    listen address:port; #默认监听80端口
    如果服务器使用ipv6地址,那么可以这样使用
    listen [::]:8000;
    listen [fe80::1];
    listen [::]:8000;
    listen [:::a8c9:1234]:8000;
    在地址和端口后,还可以加上其他参数,例如:
    listen 443 default_server ssl;
    listen 127.0.0.1 default_server accept_filter=dataready backlog=1024;
    下面说明listen可用参数的意义。
    defaule:将所在的server块作为整个web服务的默认server块。如果没有设置这个参数,那么将会以在nginx.conf中找到的第一个server块作为默认server块。需要默认虚拟主机的原因是,当一个请求无法匹配配置文件中的所有主机域名时,就需要使用默认虚拟主机。
    default_server:同上。
    backlog=num:表示TCP中backlog队列的大小。默认为-1,表示不予设置,在TCP建立三次握手的过程中,进程还没油开始处理监听句柄,这时backlog队列将会防止这些新连接,可如果backlog队列已满,还有新的客户端试图通过三次握手建立TCP连接,这时客户端将建立失败。
    revbuf=size:设置监听句柄的SO_RCVBUF参数。
    sndbuf=size:设置监听句柄的SO_SNDBUG参数。
    accept_filter:设置accept过滤器,只对FreeBSD操作系统有用。
    deferred:在设置该参数后,若用户发起建立连接请求,并且完成了TCP的三次握手,内核也不会为了这次的连接调度worker进程来处理,只有用户真的发送请求数据时,(内核已经在网卡中受到请求数据包),内核才会唤醒worker进程处理这个连接,这个参数适用于大并发的情况下,它减轻了worker进程的负担,,当请求数据来临时,worker进程才会开始处理这个连接。
    bind:绑定当前端口/地址对。如127.0.0.1:8000。只有同时对一个端口监听多个地址是才会生效。
    ssl:在当前监听的端口上建立的连接必须基于ssl协议。

  2. 主机名称: 在开始处理一个HTTP请求时,nginx会取出herder头中的host,与每个server中的server_name进行匹配,以此决定到底由哪一个server块来处理这个请求。有可能一个host与多个server块中的server_name都匹配,这时会根据匹配优先级来实际处理的server块。
    配置块:server
    server_name name […];#默认server_name “”;
    server_name后可以跟多个主机名称,如server_name www.web.com web.com test.web.com;
    server_name与host的匹配优先级如下:
    1、首先选择所有字符串完全匹配的server_name,如www.web.com.
    2、其次选择通配符在前面的server_name,如*.web.com。
    3、在其次选择通配符在后面的server_name,如www.web.*。
    4、最后选择使用正则表达式才匹配的server_name,如~^.web.com$。

  3. server_name哈希:为了提高快速寻找到相应server_name的能力,nginx使用散列表来存储server_name。server_names_hash_bucket_size设置了每个散列桶占用的内存大小。
    配置块:http、server、location
    server_names_hash_bucket_size 32|64|128;
    配置块:http、server、location

    server_names_hash_max_size size;#默认大小512
    server_names_hash_max_size会影响散列表的冲突率。server_names_hash_max_size越大消耗的内存就越多,但散列key的冲突率则会降低,检索速度也更快。server_names_hash_max_size越小,消耗的内存就越小,但散列的冲突率会增高。(hash冲突不是很清楚的可以查询资料了解一下)

  4. 重定向主机名称的处理
    配置块:http、server、location
    server_name_in_redirect on | off;#默认server_name_in_redirect on;
    该配置需要配合server_name使用。在使用on打开时,表示在重定向请求时会使用server_name里配置的第一个主机名代替原先请求中的host头部,而使用off关闭时,表示在重定向时使用请求本身的host头部。

    4.2 location uri匹配
    配置块:server
    location [=|~|~*|^~|@]/uri/ { … }
    location会尝试根据用户请求中的URI来匹配上面的/uri表达式,如果可以匹配,就选择location{}块中的配置来处理用户请求。匹配方式是多样的,当然URI匹配可以使用正则表达式。
    1、= 表示把URI作为字符串,以便于参数中的uri做完全匹配。
    2、~ 表示匹配URI时是字母大小写是敏感的。
    3、~* 表示匹配时忽略字母大小写。
    4、^~ 表示匹配URI时只需要其前半部分与URI参数匹配即可。
    5、@ 表示仅用于nginx服务内部请求之间的重定向,带有@的location不直接处理用户请求。
    注:location是有顺序的,当一个请求有可能匹配多个location时,实际上这个请求会被第一个location处理。如需匹配全部请求,location处填写”/”即可。

2、文件路径的定义

  1. 以root方式定义文件路径
    配置块:http、server、location、if
    root path;
    例如:定义资源文件相对于HTTP请求的根目录
    location /download/ {
    root /opt/web/html/;
    }
    以上配置中,如果有一个请求的URI是/download/index/web.html,那么web服务将会返回服务器上/opt/web/html/web.html文件的内容。

  2. 以alias方式定义文件路径
    配置块:location
    alias path;
    它与root的不同点主要在于如何解读紧跟location后面的uri参数,这将会致使alias与root以不同的方式将用户请求映射到真正的磁盘文件上,例如,如果有一个请求的URI是/conf/nginx.conf,而用户实际项访问的文件在/usr/local/nginx/conf/nginx.conf,那么想要alias来进行设置的话,可以采用如:
    location /conf {
    alias /usr/local/nginx/conf/;
    }
    如果使用的是root设置,那么语句如下:
    location /conf {
    root /usr/local/nginx/;
    }
    使用alias时,在URI向实际文件路径的映射过程中,已经把location后配置的/conf这部分字符串丢弃掉,因此/conf/nginx.conf请求将根据alias path 映射为/path/nginx.conf。root则根据完整的URI请求来映射,因此/conf/nginx.conf请求会根据root path映射为/path/conf/nginx.conf这也是root可以放置到http、server、location、if块中,而alias只能放置到location块中的原因。

  3. 访问首页
    配置块:http、server、location
    index file …;#默认:index index.html;
    访问站点的URI时/,这时一般时返回网站的首页,而这与root和alias都不同,这里用nginx_http_index_module模块提供的index配置实现,index后可以跟多个文件参数,ngiunx将会按照顺序来访问这些文件,例如:
    location / {
    root path;
    index /index.html /html/index.jsp /index.jsp;
    }
    接收到请求后,nginx首先会尝试访问path/index.jsp文件,如果可以访问就直接返回文件内容结束请求,否则再试图返回paht/html/index.jsp文件的内容,依此类推。

  4. 根据HTTP返回码重定向到页面
    配置块:http、server、location、if
    error_page code [code…] [=|=answer-code] uri | @named_location;
    当对于某个请求返回错误码时,如果匹配上了error_page中设置的code,则重定向到新的URI中。
    例如:
    error_page 404 /404.html;
    error_page 502 503. 504 /50x.html;
    error_page 403 http://www.baidu.com;
    error_page 404 = @fetch;
    注:虽然重定向了URI但返回的HTTP错误码还是与原来的相同,可以通过“=” 来更改返回的错误码,例如:
    error_page 404 =200 /empty.gif;
    error_page 404 =403 /forbidden.gif;
    如果不想修改URI,可以做一个内部转发实现。

  5. 是否递归使用error_page
    配置块:http、server、location
    recursive_error_pages [on | off];#默认off;

  6. 尝试访问按照顺序的每一个path,如果可以有效的读区就直接向用户返回这个path对应的文件结束请求,否则继续向下访问,如果所有的path都找不到文件,就重定向到最后的参数uri上,因此,最后这个参数uri必须存在,而且它应该是可以有效重定向的。
    配置块:server、location
    try_files path1 [path2] uri;

3、内存及磁盘资源的分配

  1. HTTP包体只存储到磁盘文件中
    配置块:http、server、location
    client_body_in_file_only on | clean | off;#默认client_body_in_file_only off;
    当值为off时,用户请求中的HTTP包体一律存储到磁盘文件中,即使只有0字节也会储存为文件,当请求结束时,如果配置为on,则这个文件不会被删除(该配置一般用于调试,定位问题),但如果配置为clean,则会删除这个文件。

  2. HTTP包体尽量写入到一个内存buffer中
    配置块:http、server、location
    client_body_in_single_buffer on | off;#默认为client_body_in_single_buffer off;
    用户请求中的HTTP包体一律储存到内存buffer中,当然如果HTTP包体的大小超过了下面client_body_buffer_size设置的值,包体还是会写入到磁盘中。

  3. 储存HTTP头部的内存buffer大小
    配置块:http、server
    client_body_buffer_size size;#默认client_body_buffer_size 1k;
    配置定义了正常情况下nginx接收用户请求中HTTP herder部分(包括HTTP行和HTTP头部)时分配的内存buffer大小,有时,请求中的HTTP header部分可能会超过这个大小,这时large_client_header_buffers定义的buffer将会生效。

  4. 储存超大HTTP头部的内存buffer大小
    配置块:http、server
    large_client_header_buffers number size;#默认large_client_header_buffers 4 8k;
    large_client_header_buffers定义了nginx接收一个超大HTTP头部请求的buffer个数和每个buffer的大小,如果HTTP请求行(如GET/index HTTP/1.1)的大小超过上面的单个buffer则返回”Request URI too large” (414)。请求中一般会有许多header,每一个header的大小也不能超过单个buffer的大小,否则会返回“Bad request”(400)当然请求行和请求头的总和也不可以超过buffer个数*buffer大小。

  5. 储存HTTP包体的内存buffer大小
    配置块:http、server、location
    client_body_buffer_size size;#默认:client_body_buffer_size 8k/16k;
    定义nginx接收HTTP包体的内存缓冲区大小,也就是说HTTP包体会先接收到指定的这块缓冲中,之后才决定是否写入磁盘。

  6. HTTP包体的临时存放目录
    配置块:http、server、location
    client_body_temp_path dir-path [level1 [level2 [level3]]];#默认:client_body_temp_path client_body_temp;
    配置定义了HTTP包体临时目录。在接收HTTP包体时,如果包体的大小大于client_body_buffer_size,则会以一个递增的整数命名病存放到client_body_temp_path指定的目录中,后面跟着的level1、level2、level3,是为了防治一个目录下文件数量太多,从而导致性能下降,因此使用了level参数,这样可以按照临时文件名最多再加三层目录。
    例如:
    client_body_temp_path /opt/nginx/client_temp 1 2;
    如果上传的HTTP包使用0123456作为临时文件名,就会被存放在这个目录中。
    /opt/nginx/client_temp/6/45/0123456

  7. ngixn会对每个建立成功的TCP连接会预先分配一个内存池,参数设置内存池初始化大小。慎重设置,因为更大的size会使服务器消耗的内存增多,而更小的size则会引发更多的内存分配次数。
    配置块:http、server
    connection_pool_size size;#默认:connection_pool_size 256;

  8. nginx开始处理HTTP请求时,将会为每个请求都分配一个内存池,size配置项将指定这个内存池的初始化大小,用于减少内核对于小块内存的分配次数。TCP连接关闭时会销毁connection_pool_size指定的连接内存池,HTTP请求结束时,会销毁request_pool_size指定的HTTP请求内存池但它们的创建、销毁时间并不一致,因为一个TCP连接可能被复用于多个HTTP请求。
    配置块:http、server
    request_pool_size size;#默认:request_pool_size 4k;

4、网络连接设置

  1. 读取HTTP头部的超时时间
    配置块:http、server、location
    client_header_timeout time;#默认:client_header_timeout 60;(默认单位:秒)
    客户端与服务器建立连接后将开始接收HTTP头部,在这个过程中,如果在一个时间间隔(超时是时间)内没有读取到客户端发来的字节,则认为超时,并向客户端返回408(“Request timed out”)响应。

  2. 读取HTTP包体的超时时间
    配置块:http、server、location
    client_body_timeout time;#默认:client_body_timeout 60;(默认单位:秒)
    与client_header_timeout相似,这个用在HTTP包体时才有效

  3. 发送响应的超时时间
    配置块:http、server、location
    send_timeout time;#默认 :send_timeout 60;
    如果nginx服务器向客户端发送数据包,但客户端一只没有去接受这个数据包,在某个连接超过send_timeout定义的超时时间,那么nginx将关闭这个连接。

  4. nginx释放超时的套接字使用的缓存。连接超时后将通过向客户端发送RES包来直接重置连接,在这个选项打开后,nginx会在某个连接超时后,不是使用正常情况下的四次握手关闭TCP连接,而是直接向用户发送RST重置包,不再等待用户的应答,直接释放nginx服务器上关于这个套接字使用的所有缓存(如TCP滑动窗口)。相比正常的关闭方式,它使得服务器避免产生许多处于FIN_WAIT_1、FIN_WAIT_2、TIMW_WAIT状态的TCP连接。
    配置块:http、server、location
    reset_timeout_connection off | on;默认:reset_timeout_connection off;
    注:使用RST重置包关闭连接会带来一些问题,默认情况下不会开启。

  5. 控制nginx关闭用户连接方式
    配置块:http、server、location
    lingering_close off | on | always;
    always表示关闭用户连接前必须无条件地处理连接上所有用户发送的数据。off表示关闭连接时完全不管连接上是否已经有准备就绪的来自用户的数据。on是中间值,一般情况下在关闭连接前都会处理连接上的用户发送的数据,除了有些情况下在业务上认定在这后的数据是不必要的。

  6. 设置lingering_close关闭连接的超时时间
    配置块:http、server、location
    lingering_time time;默认:lingering_time 30s
    lingering_close启用后,这个配置项对于上传大文件很有用。前面讲过,当用户请求的Content-Length大于max_client_body_size配置时,nginx服务会立刻向用户发送413响应,但是很多客户端可能不管403返回值,仍然持续不断的上传HTTP body,这时经过了lingering_close设置的时间后,nginx将不管用户是否仍在上传,都会把连接关闭掉。

  7. 设置lingering_close关闭前检测是否有用户发送的数据到达服务器
    配置块:http、server、location
    lingering_timeout time;默认:lingering_timeout 5s;
    lingering_close关闭前检测,如果超过lingering_timeout时间后还没有数据可读,就直接关闭连接,否则,必须在读取完连接缓冲区山的数据并丢弃后才会关闭这个连接。

  8. 对某些浏览器禁用keepalive功能
    配置块:http、server、location
    keepalive_disable [msie6 | safari | none] …;#默认:keepalive_disable msie6 safari
    HTTP请求中的keepalive功能是为了让多个请求复用一个HTTP长连接,这个功能对服务器的性能提高是很有帮助的。但是有些浏览器,如IE6和Safari,它们对于使用keepalive功能的POST请求处理有功能性问题,因此是禁用IE6、Safari的keepalive功能。

  9. keepalive超时时间
    配置块:http、server、location
    keepalive_timeout time;#默认keepalive_timeout 75;(默认单位:秒)
    一个keepalive连接在闲置超过一定时间后(默认是75秒),服务器和浏览器都会去关闭这个连接。当然,keepalive_timeout配置项是用来约束nginx服务器的,nginx也会按照规范把这个时间传给浏览器,但每个浏览器对待keepalive的策略有可能是不同 的。

  10. keepalive单个长连接允许承载的请求最大数
    配置块:http、server、location
    keepalive_requests n;#默认: keepalive_requests 100;
    一个keepalive连接上默认最多只能发送100个请求。

  11. 是否对于keepalive连接使用TCP_NODELAY选项
    配置块:http、server、location
    tcp_nodelay on | off;#默认:tcp_nodelay on;

  12. 在打开sendfile选项时,确定是否开启FreeBSD系统上的TCP_NOPUSH或linux系统傻姑娘的TCP_CORK功能,打开tcp_nopush后,将会在发送响应时把整个响应包头放到一个TCP包中发送。
    配置块:http、server、location
    tcp_nopush on | off;#默认:tcp_nopush off;

5、MIME类型的设置

  1. 定义MIME type到文件扩展名的映射。多个扩展名可以映射到同一个MIME type
    配置块:http、server、location
    type { … }
    例如:
    types {
    text/html html;
    text/html conf;
    image/gif gif;
    image/jpeg jpg;
    }

  2. 默认MIME type
    配置块:http、server、location
    default_type MIME-type;#默认:default_type text/plain;
    当找不到相应的MIME-type与文件扩展名之间的映射时,使用默认的MIME type作为HTTP header中的Content-Type。

  3. 配置MIME type 占散列桶内存大小
    配置块:http、server、location
    types_hash_bucket_size size;#默认:32 | 64 | 128;
    为了快速寻找到相应的MIME type,nginx使用散列表来储存MIME type与文件扩展名。

    1. 配置MIME type最大占用内存
      配置块:http、server、location
      types_hash_nax_size size;#默认types_hash_nax_size 1024;
      types_hash_nax_size影响散列表的冲突率。types_hash_nax_size越大,就会消耗更多的内存,但散列key的冲突率会降低,检索速度快。types_hash_nax_size越小,消耗的内存就越小,但散列的冲突率可能会上升,影响检索速度。

6、对客户端的限制

  1. 按HTTP方法名限制用户请求
    配置块:location
    limit_except method … { … }
    nginx通过limit_except后面指定的方法名来限制用户请求。方法名可取值包括:GET、HEAD、POST、PUT、DELETE、MKCOL、COPY、MOVE、OPTIONS、PROPFIND、PROPPATCH、LOCK、UNLOCK、PATCH。
    例如:
    limit_except GET {
    allow 192.168.0.0/32;
    deny all;
    }
    注:允许GET方法就意味着也允许HEAD方法。因此上配置时禁止GET和HEAD方法,其他方法时允许的。

  2. HTTP请求包体最大值
    配置块:http、server、location
    client_max_body_size size;#默认:client_max_body_size 1m;
    浏览器在发送含有较大HTTP包体的请求时,其头部会有一个Content-Length字段,client_max_body_size是用来限制Content-Length所示值的大小的。因此这个限制包体的配置非常有用处,因为不用等nginx接收完所有的HTTP包体(这有可能消耗很长时间)就可以响应客户端请求过大不被接受。例如一个用户上传1GB文件,nginx在接收完包头后,发现Content-Length超过client_max_body_size定义的值,就直接发送413(“Request Entity too Large”)响应给客户端。

  3. 对请求限速
    配置块:http、server、location、if
    limit_rate speed;#默认:limit_rate 0;
    此配置是对客户端请求限制美妙传输的字节数,speed可以是nginx配置文件中的配置单位如(k,m),0表示不限速。针对不同的客户端,可以使用&limit_rate参数执行不同的限速策略。
    例如:
    server {
    if (&slow) {
    set &limit_rate 4k;
    }
    }

  4. nginx向客户端发送的响应长度超过limit_rate_after后才开始限速
    配置块:http、server、location、if
    limit_rate_after time;#默认:limit_rate_after 1m;
    例如:
    limit_rate_after 1m;
    limit_rate 100k;

7、文件操作优化

  1. 启用linux上的sendfile系统调用来发送文件,它减少了内核态与用户态之间两次内存复制,这样就会从磁盘中读取文后直接在内核态发送到网卡设备,提高了发送文件的效率
    配置块:http、server、location
    sendfile on | off;#默认:sendfile off;

  2. AIO系统调用
    配置块:http、server、location
    aio on | off;#默认:aio off;
    此配置表示是否在FreeBSD或linux系统上启用内核级别的异步文件I/O功能,它与sendfile功能是互斥的。

  3. 在FreeBSD和linxu系统上使用O_DIRECT选项去读取文件,缓冲区大小为size,通常对大文件的读取速度有优化作用。它与sendfile功能是互斥的。
    配置块:http、server、location
    directio size | off;#默认:directio off;

  4. 它与directio配合使用,指定以directio方式读取文件时的格式对齐。一般情况下,512B已经足够了,但针对一些高性能文件系统,如Linux下的XFS文件系统,可能需要设置到4KB作为对齐单位。
    配置块:http、server、location
    directio_alignment size;#默认:directio_alignment 512;

  5. 打开文件缓存
    配置块:http、server、location
    open_file_cache max = N [inactice = time] | off;#默认:open_file_cache off;
    文件缓存会在内存中储存3种信息
    1、文件句柄,文件大小和上次修改的时间(与linux stat命令相同)
    2、已经打开过的文件目录
    3、没有找到的活着没有权限操作的文件信息
    这样通过读取缓存就减少了对磁盘的操作。这配置后面跟的3种参数
    max:表示在内存中储存的最大个数。当达到最大限制数量后,将采用LRU(Least Recently Used)算法从缓存中淘汰最近最少使用的元素。
    inactive:表示在inactive指定的时间内没有被访问过的元素将会被淘汰。默认时间为60秒。
    off:关闭缓存。
    例如: open_file_cache max=1000 inactive=20s;

  6. 缓存打开错误文件信息,是否在缓存中缓存打开文件时出现的找不到路径,没有权限等错误信息
    配置块:http、server、location
    open_file_cache_error on | off;#默认:open_file_cache_error off;

  7. 不被淘汰的最小访问次数
    配置块:http、server、location
    open_file_cache_min_uses number;#默认:open_file_cache_min_uses 1;
    与open_file_cache中的inactive参数配合使用,如果在inactive指定的时间段内,访问次数超过了open_file_cache_min_uses指定的最小次数,那么将不会被淘汰出缓存。

  8. 检验缓存中元素有效性频率,默认为60秒检查一次缓存中的元素是否仍然有效
    配置块:http、server、location
    open_file_cache_valid time;#默认:open_file_cache_valid 60s;

8、对客户端请求的特殊处理

  1. 忽略不合法的HTTP头部
    配置块:http、server
    ignore_invalid_headers on | off;#默认:ignore_invalid_headers on;
    如果设置成off,那么当出现不合法的HTTP头部时,Nginx会拒绝服务,并直接向用户发送400(Bad Request)错误。

  2. HTTP头部是否允许下划线
    配置块:http、server
    underscores_in_headers on | off;默认:underscores_in_headers off;
    默认为off,表示HTTP头部的名称中不允许带“_”下划线。

  3. 对If-Modified-Since头部处理策略,处于性能考虑,Web浏览器一般会在客户端本地缓存一些文件,并存储当时获取的时间。这样,下次项Web服务器获取缓存过的资源时,就可以用f-Modified-Since头部把上次获取的时间带上,而f-Modified-Since将根据后面的参数决定如何处理f-Modified-Since头部
    配置块:http、server、location
    if_modified_since [ off | exact | before ];默认:if_modified_since exact;
    off:表示忽略用户请求中的f-Modified-Since头部,这时,如果获取一个文件,那么久会正常的返回文件内容。HTTP响应码通常是200。
    exact:将f-Modified-Since头部包含的时间与将要返回的文件上次修改的时间做精确比较,如果没有匹配上,则返回200和文件的实际内容,如果匹配上,则表示浏览器缓存的文件的内容已经是最新了,没有必要再返回文件从而浪费时间与带宽,这时会返回304 Not Modified,浏览器收到后悔直接读取自己的本地缓存。
    before:是比exact更宽松的比较,只要文件的上次修改时间等于或者早于用户请求中的f-Modified-Since头部的时间,就会向客户端返回304 Not Modified。

  4. 文件未找到时是否记录到error日志
    配置块:http、server、location
    log_not_found on | off;默认:log_not_found on;

  5. 表示是否合并相邻的”/”,例如://test///a.txt,在配置为on时,会将其匹配为location /test/a.txt,否则相反会完全匹配
    配置块:http、server、location
    merge_slashes on | off;默认:merge_slashes on;

  6. DNS解析地址
    配置块:http、server、location
    resolver address …;
    例如:resolver 127.0.0.1 192.0.0.1;

  7. DNS解析超时时间
    配置块:http 、server、location
    resolver_time time;#默认:resolver_time 30;

博客原创:写作不易,转载请标明出处。文章地址:http://blog.csdn.net/hatsune_miku_/article/details/78078313(๑˃∀˂๑)♪阿里嘎多(๑˃∀˂๑)♪
Nginx配置详情-配置说明-参数优化(一)
Nginx配置详情-配置说明-参数优化-核心HTTP配置(二)
Nginx配置详情-配置说明-参数优化-ngx_http_core_module模块变量(三)
Nginx配置详情-配置说明-参数优化-Nginx反向代理、负载均衡(四)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值