桂哥网络与大家分享了Nginx中FastCGI配置优化的方法。相信大部分人还是不太了解,分享一下这篇文章,供大家参考。希望你看完这篇文章后收获很大。我们一起来看看。
FastCGI:
FastCGI是在CGI的基础上发展和完善的。传统CGI接口的主要缺点是性能差,因为每次HTTP服务器遇到动态程序,都需要重启脚本解析器进行解析,然后结果返回给HTTP服务器,这在处理高并发访问时几乎不可用。另外传统的CGI界面安全性也很差,现在也很少使用。
FastCGI接口采用C/S结构,可以将HTTP服务器和脚本解析服务器,分开,并在脚本解析服务器上启动一个或多个脚本解析守护进程,当HTTP服务器每次遇到动态程序时,可以直接交付给FastCGI进程执行,然后将结果返回给浏览器。这样,HTTP服务器可以专门处理静态请求或将动态脚本服务器的结果返回给客户端,大大提高了整个应用系统的性能。
Nginx不支持直接调用或解析外部程序,所有外部程序(包括PHP)都一定要通过FastCGI接口调用。FastCGI接口是Linux下的一个套接字(这个套接字可以是文件套接字,也可以是ip套接字)。要调用CGI程序,还需要一个FastCGI的包装器(包装器可以理解为启动另一个程序的程序),绑定到一个固定的套接字,比如端口或者文件套接字。Nginx向这个套接字发送CGI请求时,包装器通过FastCGI接口接受请求,然后派生一个新的线程,调用解释器或外部程序处理脚本,读取返回的数据;然后,包装器将返回的数据传递给Nginx通过FastCGI接口沿固定插座;最后Nginx将返回的数据发送给客户端,这就是Nginx FastCGI的整个操作过程。详细流程,如图。
示例:
Nginx中FastCGI参数的优化配置实例
Nginx FastCGI配置完成后,为了保证PHP环境在Nginx下的高速稳定运行,需要添加一些FastCGI优化指令。下面是一个优化的例子,将下面的代码添加到Nginx主配置文件中的HTTP级别。
fastcgi _ cache _ path/usr/local/nginx/fastcgi _ cache levels=1:2 keys _ zone=test :10m inactive=5m;
fastcgi _ connect _ timeout300
fastcgi _ send _ timeout300
fastcgi _ read _ timeout300
fastcgi _ buffer _ size64k
fastcgi _ buffers464k
fastcgi _ busy _ buffers _ size128k
fastcgi _ temp _ file _ write _ size 128k;
fastcgi _ cacheTEST
fastcgi _ cache _ valid2003021h
fastcgi _ cache _ valid3011d
fastcgi _ cache _ validany1m上述代码的含义:
第一行代码为FastCGI缓存指定了文件路径、目录结构级别、关键字区域存储时间和非活动删除时间。
FastCGI_connect_timeout指定连接到后端FastCGI的超时时间。
FastCGI_send_timeout指定向FastCGI发送请求的超时时间,这是完成两次握手后向FastCGI发送请求的超时时间。
FastCGI_read_timeout指定接收FastCGI响应的超时时间,这是完成两次握手后接收FastCGI响应的超时时间。
FastCGI_buffer_size用于指定读取FastCGI响应的第一部分需要多少缓冲区。该值表示将使用64KB缓冲区来读取响应的第一部分(响应头),并且可以设置为fastcgi_buffers选项指定的缓冲区大小。
Fastcgi_buffers指定在本地缓冲Fastcgi的响应请求需要多少缓冲区以及需要多大的缓冲区。如果一个PHP脚本生成的页面大小是256KB,会分配4个64KB的缓冲区进行缓存;如果页面大小大于256KB,大于256KB的部分会缓存在fastcgi_temp指定的路径中,但这不是一个好方法,因为内存中的数据处理速度比硬盘快。一般这个值应该是站点中PHP脚本生成的页面大小的中间值。如果站点中大多数脚本生成的页面大小是256KB,这个值可以设置为“16 16k”、“4 ^ 64k”等。
fastcgi_busy_buffers_size的默认值是fastcgi_buffers的两倍。
Fastcgi_temp_file_write_size指示写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍。
Fastcgi_cache意味着打开Fastcgi缓存并为其指定一个名称。打开缓存非常有用,可以有效降低CPU负载,防止502错误。但是打开缓存也会造成很多问题,具体情况看。
Fastcgi_cache_valid和Fastcgi用于指定响应代码的缓存时间。示例中的值表明,200和302个响应缓存一小时,301个响应缓存一天,其他响应缓存一分钟。
“Nginx中的FastCGI配置优化方法”一文内容到此结束,感谢阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。如果你想学习更多的知识,请关注桂哥网络!
TikTok千粉号购买平台:https://tiktokusername.com/
TOP