建企业网站哪家好,如何看出网站用的是什么cms程序,Wordpress实现中英文,wordpress 主题选项Nginx基本安全优化 1.调整参数隐藏Nginx版本号信息一般来说#xff0c;软件的漏洞都和版本有关#xff0c;因此我们应尽量隐藏或清除Web服务队访问的用户显示各类敏感信息#xff08;例如#xff1a;Web软件名称及版本号等信息#xff09;#xff0c;这样恶意的用户就很难… Nginx基本安全优化 1.调整参数隐藏Nginx版本号信息一般来说软件的漏洞都和版本有关因此我们应尽量隐藏或清除Web服务队访问的用户显示各类敏感信息例如Web软件名称及版本号等信息这样恶意的用户就很难猜到他攻击的服务器所用的是否是特定漏洞的软件或者是否有对应的漏洞存在。修改Nginx版本信息 [rootweb02 ~]# vim /application/nginx/conf/nginx.conf http{ server_tokens off; } #我们在http标签端开启即可 没修改之前 [rootweb02 ~]# curl -I blog.etiantian.orgHTTP/1.1 200 OKServer: nginx/1.6.3Date: Mon, 30 May 2016 11:17:14 GMTContent-Type: text/html; charsetUTF-8Connection: keep-aliveX-Powered-By: PHP/5.5.32Link: http://blog.etiantian.org/?rest_route/; relhttps://api.w.org/ 修改后结果需要重启生效[rootweb02 ~]# curl -I blog.etiantian.orgHTTP/1.1 200 OKServer: nginxDate: Mon, 30 May 2016 11:21:33 GMTContent-Type: text/html; charsetUTF-8Connection: keep-aliveX-Powered-By: PHP/5.5.32Link: http://blog.etiantian.org/?rest_route/; relhttps://api.w.org/ 修改为后浏览器访问404界面也不会出现版本信息 server_tokens参数的官方说明如下syntax server_tokens on|off; #此行为参数语法on为开启off为关闭default server_tokens on; #此行意思是不配置该参数软件默认情况的结果context http,server,location #此行为server_tokens参数可以放置的位置参数作用激活或禁止Nginx的版本信息显示在报错信息里以及server的响应首部位置Enables or disables emitting of nginx version in error messages and in the “Server” response header field #此行是参数的作用原文 官方资料地址http://nginx.org/en/docs/http/ngx_http_core_module.html 2.更改源码隐藏Nginx软件名及版本号
隐藏了Nginx版本号后更进一步可以通过一些手段把web服务软件的名称也给因此或者更改为其他Web服务软件名迷惑黑客。Nginx模块不支持更改软件名所以我们需要更改Nginx源代码才能解决。1.第一步是一次修改3个Nginx源码文件修改的第一个文件为nginx-1.6.3/src/core/nginx.h[rootweb02 ~]# cd /home/oldboy/tools/nginx-1.6.3/src/core/[rootweb02 core]# vim nginx.h #define NGINX_VERSION 9.9.9#修改为想要的版本号#define NGINX_VER ABCDOCKER/ NGINX_VERSION#将nginx修改想要修改的软件名称#define NGINX_VAR ABCDOCKER#将nginx修改为想要修改的软件名称。#define NGX_OLDPID_EXT .oldbin 2.第二步修改nginx-1.6.3/src/http/ngx_http_header_filter_module.c的第49行 [rootweb02 nginx-1.6.3]# vim src/http/ngx_http_header_filter_module.c static char ngx_http_server_string[] Server: ABCDOCKER CRLF;#修改本行此处的文件是我们Curl 出来显示的名称 3.第三步修改nginx-1.6.3/src/http/ngx_http_special_response.c对外页面报错时它会控制是否展示敏感信息。修改28~30行 [rootweb02 nginx-1.6.3]# vim src/http/ngx_http_special_response.c 21 static u_char ngx_http_error_full_tail[] 22 hrcenterABC(www.abcdocker.com)/center CRLF 23 /body CRLF 24 /html CRLF 25 ; 26 27 28 static u_char ngx_http_error_tail[] 29 hrcenterABC(www.abcdocker.com)/center CRLF 30 /body CRLF 31 /html CRLF 5.修改完成之后需要重新编译nginx 查看原来编译的参数[rootweb02 nginx-1.6.3]# /application/nginx/sbin/nginx -Vnginx version: nginx/1.6.3built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) TLS SNI support enabledconfigure arguments: --prefix/application/nginx-1.6.3/ --userwww --groupwww --with-http_ssl_module --with-http_stub_status_module[rootweb02 nginx-1.6.3]# ./configure --prefix/application/nginx-1.6.3/ --userwww --groupwww --with-http_ssl_module --with-http_stub_status_module提示需要停止原来的nginx从新进行编译。如果不想在覆盖原来的编译参数可以选择指定新的目录。 提示最后还需要make makeinstall 才会生效 测试需要开启nginx [rootweb02 application]# curl -I blog.etiantian.orgHTTP/1.1 200 OKServer: ABCDOCKERDate: Mon, 30 May 2016 12:07:19 GMTContent-Type: text/html; charsetUTF-8Connection: keep-aliveX-Powered-By: PHP/5.5.32Link: http://blog.etiantian.org/?rest_route/; relhttps://api.w.org/ 因为我优化了所以Server后面除了我设置的字母不会显示版本信息修改配置文件server_tokens off; 修改为on即可 重启nginx [rootweb02 application]# curl -I blog.etiantian.orgHTTP/1.1 200 OKServer: ABCDOCKER/9.9.9Date: Mon, 30 May 2016 12:09:05 GMTContent-Type: text/html; charsetUTF-8Connection: keep-aliveX-Powered-By: PHP/5.5.32Link: http://blog.etiantian.org/?rest_route/; relhttps://api.w.org/ 关闭server_tokens off; 可以显示我们设置的错误 说明 1.提示网站安全要从最简单、最短板、最低点入手解决问题门大开着窗户安装再结实的护栏也没有意义。2.向有经验的人及优秀的网站公司学习。3.学习看官方文档根据一手资料去分析4.命令输出结果中含有需要过滤或者要保留的内容时命令自身可能有参数直接实现。3.更改Nginx服务的默认用户
为了Web服务更安全我们要尽可能地改掉软件默认的所有配置包括端口、用户等。查看nginx服务对应的默认用户查看默认配置文件[rootweb02 ~]# grep #user /application/nginx/conf/nginx.conf.default #user nobody; 为了防止黑客猜到这个Web服务用户我们需要更改成特殊的用户名但这个用户必须是系统事先存在的 1为Nginx服务建立新用户[rootweb02 ~]# useradd nginx -s /sbin/nologin -M[rootweb02 ~]# id nginx 2配置Nginx服务让其使用刚建立的nginx用户更改ningx服务默认使用的用户方法有两种第一种为直接更改配置文件参数将默认的#user nobody修改如下内容user nginx nginx;#在http标签即可 如果注释或不设置上述参数默认即是nobody用户不推荐使用。最好采用一个普通用户 第二种为直接在编译nginx软件时指定编译的用户和组./configure --prefix/application/nginx-1.6.3/ --userwww --groupwww --with-http_ssl_module --with-http_stub_status_module 提示前文在编译nginx服务时就是这样带着参数因此配置文件中加不加参数默认都是nginx用户了。 通过上述修改后Nginx进程可以看到worker processes进程对应的用户都变成了nginx4.优化Nginx服务的worker进程个数
在高并发、访问量的Web服务场景需要事先启动好更多的nginx进程以保证快速响应并处理大量并发用户的请求.优化Nginx进程对应nginx服务的配置参数如下worker_processes 1; 上述参数调整的是Nginx服务的Worker进程数Nginx有Master进程和Worker进程之分Master为管理进程worker是工作进程 下面介绍Linux服务CPU总核数的方法[abcdockerweb02 ~]$ grep processor /proc/cpuinfo |wc -l1[abcdockerweb02 ~]$ grep -c processor /proc/cpuinfo 1#此处的1表示1颗1核的CPU 查看cpu总颗数 [abcdockerweb02 ~]$ grep pysical id /proc/cpuinfo |sort|uniq|wc -l1 #对phsical id 去重计算表示1颗CPU 执行top命令然后按数字1即可显示所有的cpu核数如下 单核CPU显示如下 有关worker_process参数的官方说明如下 syntax worker_processes number#此行为参数语法number为数量default worker_processes 1 #此行意思是不配置该参数软件默认情况为1context main #此行为worker_processes参数可以放置的位置worker_processes为定义worker进程数的数量建议设置为CPU的核数或者cpu核数*2的进程数具体情况要根据实际业务来进行选择。除了要和CPU核数的匹配外和硬盘存储的数据以及系统的负载也会有关设置为CPU的个数或核数是一个好的起始配置 5.优化绑定不同的Nginx进程到不同CPU上 默认情况Nginx的多个进程有可能跑在某一个或某一核的CPU上导致Nginx进程使用硬件的资源不均。可以分配不同的Nginx进程给不同的CPU处理达到充分有效利用硬件的多CPU多核资源的目的。 worker_processes 1;worker_cpu_affinity 0001 0010 0100 1000;#worker_cpu_affinity就是配置nginx进程CPU亲和力的参数即把不同的进程分给不同的CPU处理。这里0001 0010 0100 1000是掩码分别代表1、2、3、4核cpu核心由于worker_processes进程数为4因此上述配置会把每个进程分配一核CPU处理默认情况下进程不会绑定任何CPU参数位置为main段 worker_cpu_affinity参数的官方说明如下 syntax worker_cpu_affinity cpumask.....#此行为cpu亲和力参数语法cpumask为cpu掩码default --- #默认不配置context main #此行为worker_cpu_affinty参数可以放置的位置 worker_cpu_affinity的作用是绑定不同的worker进程到一组CPU上。通过设置bitmask控制允许使用的CPUS默认worker进程不会绑定到任何CPUS。 参考worker_processes 4;worker_cpu_affinity 0001 0010 0100 1000;binds each worker process to a separate CPU, whileworker_processes 2;worker_cpu_affinity 0101 1010;binds the first worker process to CPU0/CPU2, and the second worker process to CPU1/CPU3. The second example is suitable for hyper-threading.The directive is only available on FreeBSD and Linux.From : http://nginx.org/en/docs/ngx_core_module.html by oldboy 通过观察我们发现配置后不同CPU的使用率相对平均和测试前变化不大。可能是Nginx软件本身在逐渐变化使其使用多核CPU时更为均衡。 另外(taskset – retrieve or set a process’s CPU affinity)命令本身也有分配CPU的功能例如taskset -c 1,2,3 /etc/init.d/mysqld start。6.Nginx事件处理模型优化
Nginx的连接处理机制在于不同的操作系统会采用不同的I/O模型在Linux下Nginx使用epoll的I/O多路复用模型在Freebsd中使用kqueue的I/O多路复用模型在Solaris中使用/dev/poll方式的I/O多路复用模型在Windows使用的是icop等待。要根据系统类型选择不同的事件处理模型可供使用的选择的有“use [kqueue|rtsig|epoll|/dev/poll|select|pokk]”。企业面试题Nginx epool和apache select有什么区别http://www.tuicool.com/articles/AzmiY3宿管大妈的例子具体配置如下events {#events指令是设定Nginx的工作模式及连接数上限use epoll}#use是个事件模块指定用来指定Nginx的工作模式Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。其中select和poll都是标准的工作迷失kqueue和epoll是高效工作模式不同的是epoll用在Linux平台而kqueue用在BSD系统中。对于Linux 2.6内核推荐使用epoll工作模式 根据Nginx的官方文档建议也可以不指定事件处理模型Nginx会自动选择最佳的事件处理模型服务。 7.调整Nginx单个进程允许的客户端最大连接数
调整Nginx单个进程允许客户端的最大连接数这个控制连接数的参数为worker_connections 1024; worker_connections的值要根据具体服务器性能和程序的内存使用量来指定一个进程启动使用的内存根据程序确定 events { worker_connections 20480;}#worker_connections 也是个事件模块指令用于定义Nginx每个进程的最大连接数默认是1024.最大客户端连接数由worker_processes和worker_connections决定. 并发worker_process * worker_connections 参考资料http:nginx.org/en/docs/ngx_core_module.html 8.配置Nginx worker进程最大打开文件数
Nginx worker进程的最大打开文件数这个控制连接数的参数为worker_rlimit_nofile。worker_rlimit_nofile 65535#最大打开文件数可设置为系统优化有的ulimit-HSn的结果。 worker_rlimit_nofile number的官方说明如下 参数语法worker_rlimit_nofile number默认配置无放置位置主标签段说明此参数的作用是改变worker processes能打开的最大文件数。参考资料http://nginx.org/en/docs/ngx_core_module.html9.开启高效文件传输模式 1.设置参数sendfile onsendfile参数用于开启文件的高效传输模式同时将tcp_nopush和tcp_nodelay两个指定设为on可防止网络及磁盘I/O阻塞提升Nginx工作效率。官方说明syntax sendfile on|off #参数语法default sendfile off #参数默认大小context httpserverlocationif in location #可放置的标签段 参数作用激活或者禁用sendfile()功能。sendfile()是作用于两个文件描述符之间的数据拷贝函数这个拷贝操作是在内核之中被称为“零拷贝”sendfile()和read和write函数要高效很多因为read和wrtie函数要把数据拷贝到应用层再进行操作。相关控制参数还有sendfile_max_chunk。 http://nginx.org/en/docs/http/ngx_http_core_module.html#sendfile2.设置参数tcp_nopush onSyntax: tcp_nopush on | off; #参数语法Default: tcp_nopush off; #参数默认大小Context: http, server, location #可以放置标签段 参数作用激活或禁用Linux上的TCP_CORK socker选项此选项仅仅开启sendfile时才生效激活这个tcp_nopush参数可以运行把http response header和文件的开始放在一个文件里发布减少网络报文段的数量。 http://nginx.org/en/docs/http/ngx_http_core_module.html#tcp_nodelay3.设置参数tcp_nodelay on用于激活tcp_nodelay功能提高I/O性能 Syntax: tcp_nodelay on | off;Default: tcp_nodelay on;Context: http, server, location 参数作用默认情况下数据发送时内核并不会马上发送可能会等待更多的字节组成一个数据包这样可以提高I/O性能但是在每次只发送很少字节的业务场景使用tcp_nodelay功能等待时间会比较长。 参数生产条件激活或禁用tcp_nodelay选项当一个连接进入到keep-alive状态时生效http://nginx.org/en/docs/http/ngx_http_core_module.html#tcp_nopush10.优化Nginx连接参数调整连接超时时间 1、什么是连接超时这里的服务员相当于Nginx服务建立的连接当服务器建立的连接没有接收到处理请求时可在指定的事件内就让它超时自动退出。还有当Nginx和fastcgi服务建立连接请求PHP时如果因为一些原因负载高、停止响应fastcgi服务无法给Nginx返回数据此时可以通过配置Nginx服务参数使其不会四等。例如可设置如果Fastcgi 10秒内不能返回数据那么Nginx就终端本次请求。2、连接超时的作用1设置将无用的连接尽快超时可以保护服务器的系统资源CPU、内存、磁盘2当连接很多时及时断掉那些已经建立好的但又长时间不做事的连接以减少其占用的服务器资源因为服务器维护连接也是消耗资源的。3有时黑客或而恶意用户攻击网站就会不断和服务器建立多个连接消耗连接数但是什么也不操作。只是持续建立连接这就会大量的消耗服务器的资源此时就应该及时断掉这些恶意占用资源的连接。4LNMP环境中如果用户请求了动态服务则Nginx就会建立连接请求fastcgi服务以及MySQL服务此时这个Nginx连接就要设定一个超时时间在用户容忍的时间内返回数据或者再多等一会后端服务返回数据具体策略要看业务。3.连接超时带来的问题以及不同程序连接设定知识服务器建立新连接也是要消耗资源的因此超时设置的太短而并发很大就会导致服务器瞬间无法响应用户的请求导致体验下降。企业生产有些PHP程序站点就会系统设置短连接因为PHP程序建立连接消耗的资源和时间相对要少些。而对于java程序站点一般建议设置长连接因为java程序建立消耗的资源和时间更多。4.Nginx连接超时的参数设置1设置参数keeplived_timeout 60;用于设置客户端连接保持会话的超时时间为60秒。超过这个时间服务器会关闭该连接此数值为参考值。Syntax: keepalive_timeout timeout [header_timeout]; #参数语法Default: keepalive_timeout 75s; #参数默认大小Context: http, server, location #可以放置的标签段 参数作用keep-alive可以使客户端到服务端已经建立的连接一直工作不退出当服务器有持续请求时keep-alive会使用正在建立的连接提供服务从而避免服务器重新建立新连接处理请求。 2设置参数client_header_timeout 15用于设置读取客户端请求头数据的超时时间此处的数值15单位是秒。Syntax: client_header_timeout time; Default: client_header_timeout 60s; Context: http, server 参数作用设置读取客户端请求头数据的超时时间。如果超过这个时间客户端还没有发送完整的header数据服务端将数据返回“Request time out 408”错误。3设置参数client_body_timeout 15用于设置读取客户端请求主体的超时时间默认值是60Syntax: client_body_timeout time;Default: client_body_timeout 60s;Context: http, server, location 参数作用设置读取客户端请求主体的超时时间。这个超时仅仅为两次成功的读取操作之间的一个超时非请求整个主体数据的超时时间如果在这个超时时间内客户端没有发送任何数据Nginx将返回“Request time out408”错误默认值是60. http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_timeout4设置参数send_timeout 25用户指定响应客户端的超时时间。这个超时时间仅限于两个链接活动之间的事件如果超过这个时间客户端没有任何活动Nginx将会关闭连接默认值为60s可以改为参考值25sSyntax: send_timeout time;Default: send_timeout 60s;Context: http, server, location 参数作用设置服务器端传送http响应信息到客户端的超时时间这个超时时间仅仅为两次成功握手后的一个超时非请求整个响应数据的超时时间如在这个超时时间内客户端没有收到任何数据连接将被关闭。 http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_timeout操作步骤 一般放在http标签即可http {sendfile on;tcp_nopush on;tcp_nodelay on;server_tokens off;server_names_hash_bucket_size 128;server_names_hash_max_size 512;keepalive_timeout 65;client_header_timeout 15s;client_body_timeout 15s;send_timeout 60s;} 配置参数介绍如下 keeplived_timeout 60;###设置客户端连接保持会话的超时时间超过这个时间服务器会关闭该连接。 tcp_nodelay on; ####打开tcp_nodelay在包含了keepalive参数才有效 client_header_timeout 15; ####设置客户端请求头读取超时时间如果超过这个时间客户端还没有发送任何数据Nginx将返回“Request time out408”错误 client_body_timeout 15; ####设置客户端请求主体读取超时时间如果超过这个时间客户端还没有发送任何数据Nginx将返回“Request time out408”错误 send_timeout 15; ####指定响应客户端的超时时间。这个超过仅限于两个连接活动之间的时间如果超过这个时间客户端没有任何活动Nginx将会关闭连接。优化服务器域名的bash表大小哈希表和监听端口关联每个端口都是最多关联到三张表确切名字的哈希表以星号起始的通配符名字的哈希表和以星号结束的统配符名字的哈希表。哈希表的尺寸在配置阶段进行了优化可以以最小的CPU缓存命中率失败来找到名字。Nginx首先会搜索确切名字的哈希表如果没有找到则搜索以星号起始的通配符名称的哈希表如果还是没有找到继续搜索以星号结束的通配符名字的哈希表。注意.nginx.org存储在通配符名字的哈希表中而不在明确名字的哈希表中由于正则表达式是一个个串行测试的因此该方式也是最慢的并且不可扩展。举个例子如果Nginx.org和www.nginx.org来访问服务器最频繁那么明确的定义出来更为有效server { listen 80; server_name nginx.org www.nginx.org *.nginx.org location / { root html/www; index index.php index.html index.htm; } server_names_hash_bucket_size size的值具体信息如下 server_names_hash_bucket_size size 512 #默认是512KB 一般要看系统给出确切的值。这里一般是cpu L1的4-5倍官方说明Syntax: server_names_hash_bucket_size size;Default: server_names_hash_bucket_size 32|64|128;Context: http 参数作用设置存放域名server names的最大哈希表大小。 11.上传文件大小http Request body size的限制动态应用
设置上传文件大小需要在nginx的主配置文件加入如下参数client_max_body_size 8m; 具体大小根据公司的业务调整如果不清楚设置为8m即可 Syntax: client_max_body_size size;Default: client_max_body_size 1m; #默认值是1mContext: http, server, location 参数作用设置最大的允许客户端请求主体大小在请求头域有“Content-Length”如果超过了此配置值客户端会收到413错误意思是请求的条目过大有可能浏览器不能正确的显示这个错误设置为0表示禁止检查客户端请求主体大小此参数对服务端的安全有一定的作用。 http://nginx.org/en/docs/http/ngx_http_core_module.html 12.fastcgi相关参数调优配合PHP引擎动态服务 fastcgi参数是配合nginx向后请求PHP动态引擎服务的相关参数 Nginx Fastcgi常见参数列表说明 Nginx Fastcgi相关参数 说明 fastcgi_connect_timeout 表示nginx服务器和后端FastCGI服务器连接的超时时间默认值为60s这个参数通常不要超过75s因为建立的连接越多消耗的资源就越多 fastcgi_send_timeout 设置nginx允许FastCGI服务返回数据的超时时间即在规定时间之内后端服务器必须传完所有的数据否则nginx将断开这个连接默认值为60s fastcgi_read_timeout 设置Nginx从FastCGI服务端读取响应信息的超时时间。表示建立连接成功后nginx等待后端服务器的响应时间是nginx已经进入后端的排队之中等候处理的时间 fastcgi_buffer_size 这是nginx fastcgi的缓冲区大小参数设定用来读取FastCGI服务端收到的第一部分响应信息的缓冲区大小这里的第一部分通常会包含一个小的响应头部默认情况这个参数大小是由fastcgi_buffers指定的一个缓冲区的大小 fastcgi_buffers 设定用来读取从FastCGI服务端收到的响应信息的缓冲区大小以及缓冲区数量。默认值fastcgi_buffers 8 4|8k 指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求。如果一个PHP脚本所产生的页面大小为256lb那么会为其分配4个64kb的缓存区用来缓存。如果站点大部分脚本所产生的页面大小为256kb那么可以把这个值设置为“16 16k”、“464k”等 fastcgi_busy_buffers_size 用于设置系统很忙时可以使用fastcgi_buffers大小官方推荐的大小为fastcgi_buffers*2 默认fastcgi_busy_buffers_size 8k|16k fastcgi_temp_file_write_size fastcgi临时文件的大小可设置128-256k fastcgi_cache oldboy_nginx 表示开启FastCGI缓存并为其指定一个名称。开启缓存非常有用可以有效降低CPU的负载并且防止502错误的发送但是开启缓存也会引起其他问题要根据具体情况选择。 fastcgi_cache_path fastcgi_cache缓存目录可以设置目录哈希层级。比如2:2会生成256*256个子目录keys_zene是这个缓存空间的名字cache是用多少内存(这样热门的内容nginx直接放入内存提高访问速度)inactive表示默认失效时间max_size表示最多用多少硬盘空间需要注意的是fastcgi_cache缓存是先卸载fastcgi_temp_path再移到fastcgi_cache_path。所以这两个目录最好在同一个分区 fastcgi_cache_vaild 示例 fastcgi_cache_valid 2000 302 1h; 用来指定应答代码的缓存时间实例中的值将200和302应答缓存一个小时 示例fastcgi_cache_valid 301 1d; 将304应该缓存1天。 还可以设置缓存1分钟1m fastcgi_cache_min_user 示例fastcgi_cache_min_user 1; 设置请求几次之后响应将被缓存。 fastcgi_cache_user_stale 示例fastcgi_cache_use_stale error timeout invaild_header http_500; 定义那些情况下用过期缓存 fastcgi_cache_key 示例fastcgi_cache_key $request_method://$host$request_uri; fastcgi_cache_key http://$host$request_uri; 定义fastcgi_cache的key示例中就以请求的URI作为缓存的keynginx会取这个key的md5作为缓存文件如果设置了缓存哈希目录Nginx会从后往前取响应的位置作为目录。注意一定要加上$request_method作为cache key否则如果HEAD类型的先请求会导致后面的GET请求返回为空 fastcgi cache资料http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cachePHP 优化设置 在http{}里面 fastcgi_connect_timeout 240;fastcgi_send_timeout 240;fastcgi_read_timeout 240;fastcgi_buffer_size 64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 128k;#fastcgi_temp_path /data/ngx_fcgi_tmp; 需要有路径fastcgi_cache_path /data/ngx_fcgi_cache levels2:2 keys_zonengx_fcgi_cache:512m inactive1d max_size40g; PHP缓存 可以配置在server标签和http标签 fastcgi_cache ngx_fcgi_cache; fastcgi_cache_valid 200 302 1h;fastcgi_cache_valid 301 1d;fastcgi_cache_valid any 1m;fastcgi_cache_min_uses 1;fastcgi_cache_use_stale error timeout invalid_header http_500;fastcgi_cache_key http://$host$request_uri; 2个模块地址 http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffer_siz http://nginx.org/en/docs/http/ngx_http_proxy_module.html 未经允许不得转载Linux 自动化运维之路~ » 深度优