实战Nginx与PHP(FastCGI)的作用、安装、配置与优化

合集下载

linux通过fastcgi实现nginx、php、mysql的分机

linux通过fastcgi实现nginx、php、mysql的分机

LNMP基于fastcgi实现nginx,php,mysql的分离前言: (3)规划: (3)环境: (3)一.在172.16.1.1编译安装nginx (3)1.先安装pcre-devel,nginx的rewrite功能依赖pcre提供的库。

(3)2.为nginx建立用户,实现安全运行,指定uid的原因是为了与php通过nfs共享时权限方便 (3)3.下载并编译安装nginx (3)4.为nginx提供SysV init脚本 (4)5、为此脚本赋予执行权限: (7)6、添加至服务管理列表,并让其开机自动启动: (7)7、启动服务并测试 (7)二.在172.16.1.3上部署mysql-5.5.28 (7)1.为mysql准备数据目录与用户 (7)2.下载安装mysql,这里采用已经编译好的 (7)3.为mysql提供配置文件 (7)4.为mysql提供sysv init服务脚本: (8)5.输出mysql的man手册至man命令的查找路径: (8)6.输出mysql的头文件至系统头文件路径/usr/include: (8)7.输出mysql的库文件给系统库查找路径: (8)8、修改PATH环境变量,让系统可以直接使用mysql的相关命令。

(8)三.172.16.1.2上编译安装php-5.4.4 (8)1.安装扩展包 (9)2.下载编译安装php-5.4.4 (9)3.为php-fpm提供Sysv init脚本,并将其添加至服务列表: (9)四.整合nginx 与 php (10)1.计划把网页放在/www下,建立该目录,并修改权限 (10)2.编译/etc/nginx/nginx.conf,注释一些选项##编辑前请备份原文件 (10)3.编辑/etc/nginx/fastcgi_params,将其内容更改为如下内容: (10)4.为了以后与nginx共享文件方便建立nginx用户 (11)5.修改php-fpm配置文件/usr/local/php/etc/php-fpm.conf (11)6.下载解压discuz,更改权限 (11)7.启动nfs,编辑配置文件以供nginx挂载 (11)8.在172.16.1.1上挂载172.16.1.2的/www (11)9.安装discuz 浏览器运行172.16.1.1/install,根据提示修改Php.ini的一个选项 (12)10.在172.16.1.3上为discuz建立数据 (12)前言:平时安装LNMP是把它们安装到同一台机器上,我想这个对大家来说丝毫没有挑战,下面我们实现把他们剥离到不同的机器上,让各个服务器直接分担原来的压力,也可以增加节点实现负载均衡,如:多增加一台php,让两台机器轮询的编译php,也可以在增加一台nginx,实现dns的轮询负载均衡。

nginx性能分析和全面调优

nginx性能分析和全面调优

nginx性能分析和全⾯调优Nginx全能解析及性能调优nginx 是⼀个轻量级的、基于http的、⾼性能的反向代理的服务器和静态web服务器。

正向代理和反向代理不管是正向代理还是反向代理都是基于客户端来说的。

正向代理特点正向代理是对客户端的代理正向代理是架设在客户端的主机客户端在使⽤正向代理服务器时是要知道访问的⽬标服务的地址案例隐藏真正的访问者向服务端隐藏真正的访问者。

对于服务端来说,真正的访问者时代理服务器。

起到了隐藏客户端的作⽤。

例如:实际⽣活中的短信轰炸,你根本不知道是谁给你发的短信;ddos攻击也是这个原理,使⽤很多‘⾁鸡’机器来攻击我们的服务器,我们⽆法查找真正的攻击源。

FQ由于很多复杂的原因,导致服务器A不能直接访问服务器B,但是服务器C可以访问服务器B,⽽服务器A⼜可以访问服务器C;这时,服务器C作为服务起A的代理服务器对B进⾏访问。

⽬前的FQ软件就是使⽤这个原理。

提速同上原理⼀样,服务器A访问服务器B速度过慢,⽽服务器C访问服务器B很快,服务器A访问服务器C很快。

则使⽤代理服务器提⾼效率。

缓存增加客户端缓存,减少对服务器的请求资源的压⼒。

例如maven的nexus就是⼀个典型的客户端缓存例⼦。

授权例如,在公司中,需要对员⼯电脑进⾏外⽹监控授权,则也是使⽤这种客户端正向代理服务器。

反向代理特点反向代理是对服务端的代理反向代理是架设在服务端的主机客户端端访问的时候不知道真正服务主机的地址案例保护隐藏真正的服务客户端只能访问服务端代理服务器,⽽真正的服务端是不能直接访问的,保护了服务端。

分布式路由根据客户端不同的请求,将请求路由到不同的服务端去。

负载均衡服务端均摊客户端的请求,保证服务端的⾼可⽤。

动静分离例如图⽚、静态页⾯、css、js等,都为静态资源,将其放到对应⽬录下,客户端加载静态资源时,就不会请求到服务端,⽽只会将动态资源的请求发送到服务端,减轻服务端的压⼒。

数据缓存反向代理同正向代理⼀样具有数据缓存的功能,都是为了减少服务端的压⼒。

FastCGI 进程管理器 (FPM)安装与配置

FastCGI 进程管理器 (FPM)安装与配置

FastCGI 进程管理器(FPM)安装与配置‘FPM (FastCGI 进程管理器) 用于替换PHP FastCGI的大部分附加功能,对于高负载网站是非常有用的。

它的功能包括:∙支持平滑停止/启动的高级进程管理功能;∙可以工作于不同的uid/gid/chroot环境下,并监听不同的端口和使用不同的php.ini配置文件(可取代safe_mode的设置);∙stdout 和 stderr 日志记录;∙在发生意外情况的时候能够重新启动并缓存被破坏的opcode;∙文件上传优化支持;∙"慢日志" - 记录脚本 (不仅记录文件名,还记录PHP backtrace信息,可以使用ptrace或者类似工具读取和分析远程进程的运行数据) 运行所导致的异常缓慢;∙fastcgi_finish_request()- 特殊功能:用于在请求完成和刷新数据后,继续在后台执行耗时的工作 (录入视频转换、统计处理等);∙动态/静态子进程产生;∙基本SAPI运行状态信息 (类似Apache的 mod_status);∙基于php.ini的配置文件.安装需求FPM使用libevent来管理链接和进程信号. 至少需要安装libevent-1.4.11或者以上版本.从源代码编译编译PHP时需要--enable-fpm配置选项来激活FPM支持以下为FPM编译的具体配置参数(全部为可选参数):∙--with-libevent-dir - 指定libevent的安装路径∙--with-fpm-user - 设置 FPM 运行的用户身份 (默认 - nobody).∙--with-fpm-group - 设置 FPM 运行时的用户组 (默认 - nobody).文档原创稿件由站长提供,下载使用请保留署名。

运行时配置FPM 配置文件为php-fpm.conf,其语法类似php.ini。

php-fpm.conf全局配置段pid stringPID文件的位置. 默认为空.error_log string错误日志的位置. 默认:安装路径#INSTALL_PREFIX#/log/php-fpm.log. log_level string错误级别. 可用级别为: alert(必须立即处理), error(错误情况),warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice.emergency_restart_threshold int如果子进程在emergency_restart_interval设定的时间内收到该参数设定次数的SIGSEGV 或者 SIGBUS退出信息号,则FPM会重新启动。

如何使用Nginx搭建高性能的Web服务器的详细教程

如何使用Nginx搭建高性能的Web服务器的详细教程

如何使用Nginx搭建高性能的Web服务器的详细教程Nginx作为一款高性能的Web服务器,被广泛应用于互联网领域。

本文将详细介绍如何使用Nginx搭建高性能的Web服务器,并提供相应的教程。

一、Nginx的安装与配置1. 环境准备:确保服务器已安装好操作系统和必要的软件。

2. 下载Nginx:访问Nginx官方网站并下载最新稳定版本的Nginx 软件包。

3. 安装Nginx:解压下载的软件包,并按照官方文档进行安装。

安装完成后,验证Nginx是否成功安装。

二、Nginx的基本配置1. 修改配置文件:打开Nginx的配置文件,根据实际需求修改相关配置,包括监听端口、日志路径、反向代理设置等。

2. 配置虚拟主机:根据需要配置虚拟主机,实现多个域名的访问,提高服务器的灵活性。

3. 配置SSL证书:如需使用HTTPS协议进行安全传输,需要生成或购买SSL证书,并在配置文件中配置相关参数。

三、Nginx的高性能优化1. 调整工作进程数:根据服务器的硬件配置和负载情况,适当调整Nginx的工作进程数,以提高并发处理能力。

2. 使用缓存:配置Nginx的缓存机制,将频繁访问的静态资源缓存在内存中,以减轻后端服务器的压力,并提升响应速度。

3. 开启Gzip压缩:启用Gzip压缩功能,有效减少传输的数据量,提高页面加载速度,降低带宽消耗。

四、Nginx的安全配置1. 防止恶意请求:配置反爬虫策略和限制频繁请求的规则,保护网站免受恶意攻击。

2. 配置防火墙:部署防火墙,限制非法IP的访问,增强服务器的安全性。

3. 安装安全模块:根据需求选择合适的Nginx安全模块,增加服务器的安全防护能力,如ModSecurity等。

五、Nginx的监控与日志1. 监控工具:选择适合的监控工具,如Zabbix、Nagios等,对Nginx服务器的性能和状态进行实时监控。

2. 日志管理:配置Nginx的日志输出格式和日志切割机制,以便于日后的故障排查和性能优化分析。

Nginx与PHP(FastCGI)的安装、配置与优化

Nginx与PHP(FastCGI)的安装、配置与优化

Nginx与PHP(FastCGI)的安装、配置与优化FastCGI的介绍和工作原理首先简单的介绍下FastCGI:FastCGI是语言无关的、可伸缩结构的CGI开放扩展,其主要行为是将CGI解释器进行保持在内存中并因此获得较高的性能。

众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail-Over特性等。

FastCGI的工作原理是:(1)FastCGI进程管理器自身初始化,启动多个CGI解释器进程(多个php-cgi进程)并等待来自Web Server的连接。

在文本中,采用PHP-FPM进程管理器启动多个php-cgi FastCGI进程。

启动php-cgi FastCGI进程时,可以配置以TCP和UNIX套接字两种方式启动。

(2)当客户端请求达到Web服务器(Nginx)时,Web服务器将请求采用TCP协议或UNIX 套接字方式转发到FastCGI主进程,FastCGI主进程选择并连接到一个CGI解释器(子进程)。

Web服务器将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。

(3)FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web服务器(Nginx)。

当FastCGI子进程关闭连接时,请求便告知处理完成。

FastCGI子进程接着等待并处理来自FastCGI进程管理的下一个连接。

而在一般的普通CGI模式中,php-cgi在此便退出了。

PHP-FPMPHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在/downloads.php下载得到.PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。

必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。

Windows下Nginx+PHP5(FastCgi),memcache安装配置详解

Windows下Nginx+PHP5(FastCgi),memcache安装配置详解

Nginx作为一款支持PHP的轻量级WEB服务器,在PHP网站建设中收到越来越多的应用,最近在Windows平台上安装配置了Nginx+PHP5的运行环境,非常方便,现详细介绍下Windows下Nginx 配置PHP5的基础教程,Nginx配置PHP是以FastCgi方式配置的。

下载NginxNginx可以在多种操作系统上安装配置,我使用的是Windows,所以需要下载Nginx Windows版本,点击下载Nginx。

我下载的是nginx/Windows-0.8.53版本。

安装Nginx下载完Nginx后,需要在Windows中安装Nginx,Nginx Windows版本的安装非常方便,只要解压缩后,将文件拷贝到C盘根目录下即可,我的Nginx安装目录为C:\nginx-0.8.53。

安装配置PHP我使用的是PHP5.2,你可以可以使用PHP5.3,只要PHP版本支持FastCgi方式(有php-cgi.exe)即可,PHP安装配置教程推荐参考:Windows7 IIS7下以FastCgi和ISAPI方法安装配置PHP5教程配置Nginx支持运行PHP首先需要打开C:\nginx-0.8.53,找到C:\nginx-0.8.53\conf目录下的nginx.conf,以记事本打开,配置Nginx支持PHP第一步设定error.log的存放目录,将#error_log logs/error.log;的#去处,默认error.log是存放在Nginx安装目录中logs目录下。

配置Nginx支持PHP第二步设定WEB服务器目录,类似于PHP.INI配置文件中的document_root,Nginx配置文件中的原有信息如下修改Nginx配置如下这里需要注意,路径分隔符请使用”/”而不要使用Windows中的”\”以防歧义。

配置Nginx支持PHP第三步在Nginx配置文件中找到1 2 3 4 5 6 7 8 9 10 11 1213#location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name ; # include fastcgi_params;#} 去处#并添加WEB 目录,即 1 2 3 4 5 6 7 8 9 10 11 1213 location ~ \.php$ {root D:/PHPWeb;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME D:/PHPWeb$fastcgi_script_name;include fastcgi_params;}这里需要注意,需要将中的/scripts 修改为之前设定的WEB 目录,否则会报HTTP 404错误。

Nginx+php配置文件及原理解析

Nginx+php配置文件及原理解析

Nginx+php配置⽂件及原理解析采⽤nginx+PHP作为webserver的架构模式,在现如今运⽤相当⼴泛。

然⽽第⼀步需要实现的是如何让nginx正确的调⽤php。

由于nginx调⽤php并不是如同调⽤⼀个静态⽂件那么直接简单,是需要动态执⾏php脚本。

所以涉及到了对nginx.conf⽂件的配置。

这⼀步对新⼿⽽⾔⼀般需要⽹上查资料,对于⼀般的熟⼿⽽⾔,也有不少同学并没有搞透彻为何要如此这般配置。

本⽂的主要内容为如何在nginx server中正确配置php调⽤⽅法,以及配置的基本原理。

⼀、nginx+php运⾏原理:⾸先简单的讲⼀讲原理,⽬前主流的nginx+php的运⾏原理如下:1、nginx的worker进程直接管理每⼀个请求到nginx的⽹络请求。

2、对于php⽽⾔,由于在整个⽹络请求的过程中php是⼀个cgi程序的⾓⾊,所以采⽤名为php-fpm的进程管理程序来对这些被请求的php程序进⾏管理。

php-fpm程序也如同nginx⼀样,需要监听端⼝,并且有master和worker进程。

worker进程直接管理每⼀个php进程。

3、关于fastcgi:fastcgi是⼀种进程管理器,管理cgi进程。

市⾯上有多种实现了fastcgi功能的进程管理器,php-fpm就是其中的⼀种。

再提⼀点,php-fpm作为⼀种fast-cgi进程管理服务,会监听端⼝,⼀般默认监听9000端⼝,并且是监听本机,也就是只接收来⾃本机的端⼝请求,所以我们通常输⼊命令 netstat -nlpt|grep php-fpm 会得到:tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1057/php-fpm这⾥的127.0.0.1:9000 就是监听本机9000端⼝的意思。

4、关于fastcgi的配置⽂件,⽬前fastcgi的配置⽂件⼀般放在nginx.conf同级⽬录下,配置⽂件形式,⼀般有两种:fastcgi.conf 和 fastcgi_params。

fastcgi代理的使用示例 -回复

fastcgi代理的使用示例 -回复

fastcgi代理的使用示例-回复FastCGI(Fast Common Gateway Interface)是一种用于提供Web服务器与应用程序之间通信的协议。

它的主要目标是提高Web应用程序的性能和安全性。

FastCGI代理是将FastCGI通信引入代理服务器的一种方式,使得应用程序不直接与Web服务器通信,而是通过代理服务器来完成通信,从而提供更灵活的部署和管理方式。

下面将逐步介绍FastCGI代理的使用示例。

第一步:安装和配置FastCGI代理服务器1. 在代理服务器上安装FastCGI模块,比如Nginx、Apache等。

2. 在代理服务器的配置文件中开启FastCGI支持,并配置FastCGI的监听地址和端口号。

第二步:部署应用程序1. 在应用程序所在的服务器上安装相应的Web服务器,比如Nginx、Apache等。

2. 将应用程序部署到Web服务器上,并配置好应用程序的FastCGI监听地址和端口号。

第三步:配置代理服务器1. 在代理服务器的配置文件中,添加代理规则,指定要代理的域名和对应的应用程序的FastCGI监听地址和端口号。

2. 配置代理服务器的负载均衡策略,例如轮询、IP散列等,以提高性能和可用性。

3. 配置代理服务器的缓存策略,以减轻后端应用程序的压力。

第四步:测试代理服务器1. 启动代理服务器和应用程序服务器。

2. 在浏览器中输入代理服务器绑定的域名或IP地址,访问代理服务器。

3. 检查代理服务器是否成功地将请求转发给应用程序服务器,并将应用程序服务器的响应返回给客户端。

第五步:监控和调优1. 使用监控工具,如Zabbix、Grafana等,监控代理服务器和应用程序服务器的性能指标,如CPU使用率、内存使用率等。

2. 根据监控数据分析性能瓶颈,优化代理服务器和应用程序服务器的配置,比如调整线程数、连接数等参数。

3. 分析代理服务器的日志文件,查找异常请求和错误信息,进行问题排查和故障修复。

nginx安装升级及配置详解

nginx安装升级及配置详解

nginx安装升级及配置详解1.简介2.安装配置3.配置⽂件介绍4.启动、停⽌、平滑重启、升级⼀、Nginx简介Nginx(engine x)是俄罗斯⼈Igor Sysoev编写的⼀款⾼性能的http和反向代理服务器。

在连接⾼并发的情况下,nginx是apache服务器不错的替代品,它能够⽀持50000个并发连接数的响应,⽽内存、cpu等系统资源资源消耗却⾮常低,运⾏⾮常稳定。

性能优势:作为web服务器,处理静态⽂件、索引⽂件及⾃动索引效率⾼作为代理服务器,快速⾼效反向代理作为负载均衡服务器性能,⽀持多并发的连接,占⽤低内存稳定,采⽤分段资源分配技术⾼可⽤,⽀持热部署,启动迅速其它特点:成本低廉;配置⽂件⾮常简单;⽀持Rewrite重写规则,能够根据域名、URL的不同,将http请求分到不同的后端服务器群组;内置健康检查功能,如果nginx proxy后端的某台web服务器宕机了,不会影响到前端的访问;节省带宽,⽀持gzip压缩;⼆、Nginx安装与配置编译安装1.⾸先下载gcc编译器以及nginx⼀些模块的依赖库,通常有pcre库(⽀持rewrite模块),zlib(⽀持gzip模块)库,openssl(⽀持ssl模块)库等。

这些库可以编译安装,也可以yum安装,这⾥选择yum安装。

# yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel2.然后选择nginx版本下载源码并解压# tar –zxvf nginx-1.12.2.tar.gz –C /PATH3.使⽤configure脚本⾃动⽣成Makefile⽂件,nginx的configure脚本⽀持常⽤选项如下,但⾸先给出⼀个例⼦:./configure --prefix=/usr/local/nginx \--conf-path=/etc/nginx/nginx.conf \--error-log-path=/datadisk/data/log/nginx/error.log \--http-log-path=/datadisk/data/log/nginx/access.log \--pid-path=/var/run/nginx.pid \--lock-path=/var/run/nginx.lock \--http-client-body-temp-path=/var/cache/nginx/client_temp \--http-proxy-temp-path=/var/cache/nginx/proxy_temp \--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \--http-scgi-temp-path=/var/cache/nginx/scgi_temp \--user=nginx \--group=nginx \--with-http_ssl_module \--with-http_realip_module \--with-http_addition_module \--with-http_sub_module \--with-http_dav_module \--with-http_flv_module \--with-http_mp4_module \--with-http_gunzip_module \--with-http_gzip_static_module \--with-http_random_index_module \--with-http_secure_link_module \--with-http_stub_status_module \--with-http_auth_request_module \--with-threads --with-stream \--with-stream_ssl_module \--with-http_slice_module \--with-file-aio \--with-http_v2_module \--with-ipv6然后make && make install即可。

fastcgi性能调优(转)

fastcgi性能调优(转)

fastcgi性能调优(转)-FPM配置及使⽤总结:-FPM是⼀个PHP FastCGI的管理器,它实际上就是PHP源代码的补丁,旨在将FastCGI进程管理引进到PHP软件包中,我们必须将其patch 到PHP源代码中,然后再⾏编译才能使⽤。

⽽现在我们可以在PHP 5.3.2及更新版本中直接开启并使⽤即可,因为PHP从该版本已经将其收⼊到软件包中,所以其不再是补丁包的存在了。

· ⼏个概念的理解· Nginx+PHP配置· Php-Fpm的操作⼀、⼏个概念的理解1)、CGICGI全称“公共⽹关接⼝”(Common Gateway Interface),是HTTP服务器与其它机器上的程序进⾏通信的接⼝,其程序须运⾏在⽹络服务器上。

NOTE:CGI可以⽤任何⼀种语⾔编写,只要这种语⾔具有标准输⼊、输出和环境变量。

2)、FastCGIFastCGI是⼀个常驻型的CGI,它可以⼀直执⾏,只要激活后,不会每次都要花费时间去fork⼀次(这是CGI最为⼈诟病的fork-and-execute模式)。

它还⽀持分布式的运算,即 FastCGI 程序可以在⽹站服务器以外的主机上执⾏并且接受来⾃其它⽹站服务器来的请求。

FastCGI是语⾔⽆关的、可伸缩的CGI开放扩展,其主要⾏为是将CGI解释器进程保持在内存中并因此获得较⾼的性能。

我们知道,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保存在内存中并接受FastCGI进程管理器调度,那么就可以提供良好的性能、伸缩性等。

优点:1. FastCGI具有语⾔⽆关性;2. FastCGI独⽴于核⼼web服务器运⾏,提供了⼀个⽐API更安全的环境。

APIs把应⽤程序的代码与核⼼的web服务器链接在⼀起,这意味着在⼀个错误的API的应⽤程序可能会损坏其他应⽤程序或核⼼服务器。

⽽恶意的API的应⽤程序代码甚⾄可以窃取另⼀个应⽤程序或核⼼服务器的密钥;3. FastCGI技术⽬前⽀持语⾔有:C/C++、、Perl、Tcl、、SmallTalk、Ruby等。

Nginx服务器配置与优化

Nginx服务器配置与优化

Nginx服务器配置与优化Nginx是一个高性能的HTTP和反向代理服务器,广泛用于构建高性能的Web服务器。

在进行Nginx服务器配置和优化时,可以通过一些技巧和策略来提高服务器的性能和稳定性。

本文将介绍如何进行Nginx服务器的配置和优化,以达到更好的性能和用户体验。

一、Nginx服务器配置1. 安装Nginx首先,确保在服务器上安装了Nginx软件。

可以通过包管理工具如apt、yum等进行安装。

安装完成后,可以通过命令systemctlstart nginx启动Nginx服务,并设置开机自启动。

2. 配置NginxNginx的主要配置文件为nginx.conf,位于/etc/nginx/nginx.conf。

可以通过编辑该文件来配置Nginx服务器的各项参数,如监听端口、虚拟主机、日志记录等。

根据实际需求进行配置,确保服务器能够正常运行。

3. 虚拟主机配置在Nginx中,可以配置多个虚拟主机来实现多个网站的部署。

通过在配置文件中添加server块,可以为每个虚拟主机指定不同的域名、根目录、日志文件等参数。

合理配置虚拟主机可以提高服务器的灵活性和效率。

4. SSL配置为了保障网站的安全性,可以配置SSL证书来实现HTTPS访问。

通过在配置文件中添加ssl_certificate和ssl_certificate_key等参数,可以启用SSL功能,并配置证书文件的路径。

确保证书的有效性和安全性,提升网站的信誉度。

二、Nginx服务器优化1. 调整工作进程数Nginx默认会启动多个工作进程来处理请求,可以根据服务器的CPU核心数和内存情况来调整工作进程数。

通过修改配置文件中的worker_processes参数,可以指定工作进程的数量,以提高服务器的并发处理能力。

2. 启用缓存功能Nginx支持缓存功能,可以通过配置代理缓存、FastCGI缓存等来提高网站的访问速度。

通过在配置文件中添加proxy_cache和fastcgi_cache等参数,可以启用缓存功能,并设置缓存的大小和有效期。

nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置

nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置

nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)⼀、服务器基础配置远程链接服务器ssh ⽤户名@公⽹ip默认的⽤户名是root,假如公⽹ ip 是 a.b.c.d, 那链接命名就是ssh root@a.b.c.d下载安装基础库yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automakeyum -y install wget httpd-tools vim关闭 iptables查看iptables规则iptables -L或iptables -t nat -L关闭 iptables 规则iptables -F或iptables -t nat -F关闭 SELinux查看是否打开getenforce关闭setenforce 0⼆、Nginx 简介及安装Nginx 是⼀个开源且⾼性能、⾼可靠的 HTTP 中间件、代理服务。

安装Nginx打开官⽹To set up the yum repository for RHEL/CentOS, create the file named /etc/yum.repos.d/nginx.repo with the following contents:[nginx]name=nginx repobaseurl=/packages/OS/OSRELEASE/$basearch/gpgcheck=0enabled=1Replace “OS” with “rhel” or “centos”, depending on the distribution used, and “OSRELEASE” with “6” or “7”, for 6.x or 7.x versions, respectively.三、安装⽬录及配置讲解3.1 安装⽬录讲解查看nginx的所有安装⽬录rpm -ql nginx然后得到如下配置[root@ ~]# rpm -ql nginxnginx⽇志轮转,⽤于logrotate服务的⽇志切割/etc/logrotate.d/nginxnginx主配置⽂件/etc/nginx/nginx.conf/etc/nginx/etc/nginx/conf.d/etc/nginx/conf.d/default.confcgi配置相关,fastcgi配置/etc/nginx/fastcgi_params/etc/nginx/scgi_params/etc/nginx/uwsgi_params编码转换映射转化⽂件/etc/nginx/koi-utf/etc/nginx/koi-win/etc/nginx/win-utf设置http协议的 Content-Type 与扩展名对应关系/etc/nginx/mime.types⽤于配置出系统守护进程管理器管理⽅式/etc/sysconfig/nginx/etc/sysconfig/nginx-debug/usr/lib/systemd/system/nginx-debug.service/usr/lib/systemd/system/nginx.servicenginx模块⽬录/etc/nginx/modules/usr/lib64/nginx/modules/usr/lib64/nginx/usr/libexec/initscripts/legacy-actions/nginx/usr/libexec/initscripts/legacy-actions/nginx/check-reload/usr/libexec/initscripts/legacy-actions/nginx/upgradenginx服务的启动管理的终端命令/usr/sbin/nginx/usr/sbin/nginx-debugnginx的⼿册和帮助⽂件/usr/share/doc/nginx-1.14.0/usr/share/doc/nginx-1.14.0/COPYRIGHT/usr/share/man/man8/nginx.8.gz/usr/share/nginx/usr/share/nginx/html/usr/share/nginx/html/50x.html/usr/share/nginx/html/index.htmlnginx 的缓存⽬录/var/cache/nginxnginx⽇志⽬录/var/log/nginx3.2 安装编译参数命令nginx -V查看所有编译参数3.3 Nginx 默认配置语法参数说明user设置nginx服务的系统使⽤⽤户worker_processes⼯作进程数(⼀般与服务器核数保持⼀致)rror_log nginx的错误⽇志pid nginx服务启动时候pidevents -> worker_connections每个进程允许最⼤连接数events -> use⼯作进程数nginx 的默认配置⽂件⽂件路径/etc/nginx/conf.d/default.confserver {listen 80;server_name localhost;#charset koi8-r;#access_log /var/log/nginx/host.access.log main;location / {root /usr/share/nginx/html;index index.html index.htm;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}}可以去/usr/share/nginx/html/index.html修改默认的展⽰页⾯,也可以去/usr/share/nginx/html/50x.html修改错误页⾯。

Nginx优化详解(超详细)

Nginx优化详解(超详细)

Nginx优化详解(超详细)⼀、⼀般来说nginx 配置⽂件中对优化⽐较有作⽤的为以下⼏项:1. worker_processes 8;nginx 进程数,建议按照cpu 数⽬来指定,⼀般为它的倍数 (如,2个四核的cpu计为8)。

2. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;为每个进程分配cpu,上例中将8 个进程分配到8 个cpu,当然可以写多个,或者将⼀个进程分配到多个cpu。

3. worker_rlimit_nofile 65535;这个指令是指当⼀个nginx 进程打开的最多⽂件描述符数⽬,理论值应该是最多打开⽂件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持⼀致。

现在在linux 2.6内核下开启⽂件打开数为65535,worker_rlimit_nofile就相应应该填写65535。

这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。

查看linux系统⽂件描述符的⽅法:[root@web001 ~]# sysctl -a | grep fs.filefs.file-max = 789972fs.file-nr = 51007899724. use epoll;使⽤epoll 的I/O 模型(补充说明:与apache相类,nginx针对不同的操作系统,有不同的事件模型A)标准事件模型Select、poll属于标准事件模型,如果当前系统不存在更有效的⽅法,nginx会选择select或pollB)⾼效事件模型Kqueue:使⽤于 FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X. 使⽤双处理器的MacOS X系统使⽤kqueue可能会造成内核崩溃。

Nginx+PHP(FastCGI)搭建胜过Apache 10倍的Web服务器

Nginx+PHP(FastCGI)搭建胜过Apache 10倍的Web服务器

Nginx("engine x") 是一个高性能的HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服务器。

Nginx 是由Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。

Igor 将源代码以类BSD许可证的形式发布。

Nginx 的中文维基:/NginxChs在高并发连接的情况下,Nginx是Apache服务器不错的替代品。

Nginx同时也可以作为7层负载均衡服务器来使用。

根据我的测试结果,Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。

根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。

我曾经就有两台Apache 服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800 时,导致服务器内存和Swap空间用满而崩溃。

而这台 Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。

如果服务器内存较小,完全可以只开启25个php-cgi进程,这样 php-cgi消耗的总内存数才500M。

在3万并发连接下,访问Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器的PHP程序,仍然速度飞快。

下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出的Nginx配置文件中写明):以下为 Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程和64个php-cgi进程时的系统负载情况:安装步骤:(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 4.4)一、获取相关开源程序:1、下载程序源码包到当前目录:略。

windows下Nginx和PHP的安装与配置

windows下Nginx和PHP的安装与配置

一.软件准备1.Nginx:/download/nginx-1.0.4.zip2.php:/download/php-5.2.17-Win32-VC6-x86.zip这里需要注意一下,如果使用Apache或Nginx运行php,要选择VC6的线程安全版本,使用IIS选择VC9版本。

所以这里使用前者。

3.RunHiddenConsole:/attachments/660/RunHiddenConsole.zip 用于隐藏命令行窗口。

二.安装php直接解压php-5.2.17-Win32-VC6-x86.zip文件到php的安装目录PHP_PATH,然后在PATH中添加PHP的安装路径PHP_PATH和PHP_PATH/ext。

将PHP_PATH下的php.ini-dist重命名为php.ini,这个就是PHP的配置文件。

然后修改这个文件。

1.将register_globals = Off修改为On,这个选项是为了直接打开全局变量的,例如$POST["varname"]可以直接通过$varname访问。

2.添加php加载的模块。

通过添加extensions=xxx.dll来实现,这样php就可以自动加载相应的模块。

还需要指定需要加载的模块的路径,默认大部分模块的dll文件在PHP_PATH/ext下,所以把这个路径添加到PA TH中即可,前文已经完成这个操作。

三.安装Nginx直接解压nginx-1.0.4.zip到安装路径NGINX_PATH,启动ngix:>cd NGINX_PA TH>nginxNginx的选项:nginx -s signal 向Nginx主进程发送信号,signal取值:stop,quit,reopen,reloadnginx -c filename 用指定的配置文件来初始化nginx,默认是NGINX_PATH/conf/nginx.conf四.Nginx和php配置1.在WIndows环境下,Nginx可以通过FaseCGI守护进程与php 进行交互,这个守护进程是以php-cgi.exe的形式存在的。

NGINX服务器配置与优化指南

NGINX服务器配置与优化指南

NGINX服务器配置与优化指南第1章 NGINX基础概念与安装 (3)1.1 NGINX简介 (3)1.2 安装NGINX (3)1.2.1 在Debian/Ubuntu系统上安装 (3)1.2.2 在Red Hat/CentOS系统上安装 (3)1.2.3 在macOS上安装 (3)1.3 配置文件结构介绍 (4)第2章基本配置与启动 (4)2.1 配置语法规则 (4)2.2 配置指令概述 (5)2.3 启动、停止与重启NGINX (5)第3章虚拟主机配置 (6)3.1 基于IP的虚拟主机 (6)3.2 基于端口的虚拟主机 (6)3.3 基于域名的虚拟主机 (7)第4章 Location匹配规则 (8)4.1 location指令用法 (8)4.2 正则表达式匹配 (8)4.3 常用匹配规则案例 (9)第5章文件处理与缓存 (10)5.1 静态文件处理 (10)5.1.1 静态文件路径配置 (10)5.1.2 文件类型处理 (10)5.1.3 文件压缩 (10)5.1.4 expires缓存 (10)5.2 文件缓存配置 (10)5.2.1 开启open_file_cache (10)5.2.2 开启open_file_cache_errors (10)5.2.3 开启proxy_cache (10)5.3 expires指令使用 (11)5.3.1 expires指令参数 (11)5.3.2 expires配置示例 (11)第6章反向代理与负载均衡 (11)6.1 反向代理原理与配置 (11)6.1.1 反向代理概述 (11)6.1.2 反向代理的工作原理 (11)6.1.3 NGINX反向代理配置 (11)6.2 负载均衡策略 (12)6.2.1 轮询(Round Robin) (12)6.2.2 最少连接(Least Connections) (12)6.2.3 IP哈希(IP Hash) (12)6.2.4 加权负载均衡 (12)6.3 负载均衡的高级配置 (13)6.3.1 健康检查 (13)6.3.2 负载均衡器故障转移 (13)6.3.3 会话保持 (13)6.3.4 动态负载均衡 (13)第7章 SSL/TLS配置与优化 (13)7.1 SSL/TLS基础概念 (13)7.2 证书与私钥配置 (14)7.3 SSL优化与安全增强 (14)第8章功能优化与压力测试 (15)8.1 功能优化策略 (15)8.1.1 系统层面优化 (15)8.1.2 NGINX配置优化 (15)8.1.3 缓存策略优化 (16)8.2 压力测试工具介绍 (16)8.2.1 Apache Bench (ab) (16)8.2.2 YSlow (16)8.2.3 JMeter (16)8.2.4 LoadRunner (16)8.3 功能调优案例分析 (16)第9章安全性与防护 (17)9.1 常见攻击类型与防护策略 (17)9.1.1 DDoS攻击 (17)9.1.2 SQL注入攻击 (17)9.1.3 XSS攻击 (17)9.2 配置安全头部 (18)9.2.1 HTTP Strict Transport Security(HSTS) (18)9.2.2 Content Security Policy(CSP) (18)9.2.3 XContentTypeOptions (18)9.2.4 XFrameOptions (18)9.3 限制请求速率与连接数 (18)9.3.1 限制请求速率 (18)9.3.2 限制连接数 (19)第10章监控与故障排查 (19)10.1 监控工具与指标 (19)10.1.1 监控工具 (19)10.1.2 关键指标 (19)10.2 日志分析 (20)10.2.1 日志类型 (20)10.2.2 分析方法 (20)10.3 常见故障排查方法与技巧 (20)第1章 NGINX基础概念与安装1.1 NGINX简介NGINX(发音为“EngineX”)是一个高功能的HTTP和反向代理服务器,同时也用于邮件(IMAP/POP3/SMTP)代理服务器。

Windows下nginx+php+mysql安装和配置

Windows下nginx+php+mysql安装和配置

windows+nginx+php+mysql一、nginx安装和启动解压nginx-1.0.2.zip到C盘的根目录,并将目录名改为nginx。

执行下列操作1. cd nginx2. 命令行nginx.exe -c .\conf\nginx.conf(或者双击运行nginx.exe。

DOS下建议进入nginx.exe当前目录执行命令,否则可能提示找不到error_log.log 文件)这样,nginx就启动了。

打开浏览器,输入http://127.0.0.1/ 就可以看到nginx 的欢迎页面了。

此时不需要启动nginx。

如果配置nginx.conf修改后,应重启nginx。

nginx的其他命令:nginx -s stop //停止nginxnginx -s reload //重新加载配置文件nginx -s quit //退出nginx扩展知识:Nginx –命令行参数。

nginx 仅有数个命令行参数,完全通过配置文件来配置。

-c </path/to/config> 为 Nginx 指定一个配置文件,来代替缺省的。

-t 不运行,而仅仅测试配置文件。

nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。

-v 显示 nginx 的版本。

-V 显示 nginx 的版本,编译器版本和配置参数。

示例这个示例仅测试指定位置的配置文件是否正常,并给出提示。

/usr/bin/nginx -t -c ~/mynginx.conf二、配置nginx支持php-cgi打开conf文件夹下nginx.conf文件,配置如下:worker_processes 1;events {worker_connections 10240;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80; #端口可修改server_name 127.0.0.1; #可换成自己的域名charset utf-8; #改字符集,可写为gb2312location / {root E:\Works\php; #主目录位址index index.html index.htm index.php; #主目录默认文件# autoindex on; #没有默认文件,会列出目录中所有文件}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}location ~ .*\.php?$ { #开启支持phproot E:/Works/php; #’/'代替’\’fastcgi_pass 127.0.0.1:9000; #php fastcgl服务地址及端口fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fastcgi_param SCRIPT_FILENAME E:/Works/php$fastcgi_script_name; #改为web默认目录,’/'代替’\'。

Nginx实战篇 安装部署与配置全解析

Nginx实战篇 安装部署与配置全解析

Nginx实战篇安装部署与配置全解析目录1 写在正文之前 (3)2 部署步骤 (3)2.1 下载介质 (3)2.2 编译部署介质 (4)2.2.1 部署zlib库 (4)2.2.2 部署pcre库 (4)2.2.3 部署nginx (4)2.2.4 启动和停止nginx (5)2.3 配置nginx (5)2.3.1 配置gzip压缩 (6)2.3.2 高性能配置 (6)2.3.3 配置nginx状态监控 (7)2.3.4 反向代理实现动静结合(NgInx + Tomcat / WebLogic / WebSphere ) (7)2.3.5 配置虚拟主机 (8)2.3.6 配置静态文件超时时间 (9)2.3.7 配置日志格式与按天轮换 (9)2.4 其它配置 (10)2.4.1 禁止出错时泄露服务器的版本 (10)2.4.2 限制客户端POST提交的数据大小 (10)2.4.3 静态目录root和alias的区别 (11)2.4.4 4.限制并发数和下载速率 (11)2.4.5 指定nginx提供服务的用户: (11)2.4.6 指定错误页 (11)2.5 高级配置 (11)2.5.1 利用Nginx实现开源负载均衡的分发 (11)2.5.2 利用Nginx实现静态文件的权限控制 (12)1写在正文之前最近质保在计划做Portal的性能测试,考虑到在国家统计局项目前期规划到2000多并发的PV情况下面,静态文件的压力会超过10000。

根据对Nginx的介绍,Nginx的性能和Apache相比,会有100%的提升。

原因:得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。

目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型。

所以计划对主流的Web Server进行对比性能测试,特引入Nginx进行配置,在测试环境中现场实战了一次,特将过程记录总结如下。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实战Nginx与PHP(FastCGI)的作用、安装、配置与优化一、什么是 FastCGIFastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。

多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。

FastCGI是从CGI发展改进而来的。

传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。

这在处理高并发访问时,几乎是不可用的。

另外传统的CGI接口方式安全性也很差,现在已经很少被使用了。

FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。

当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。

这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。

二、Nginx+FastCGI运行原理Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。

FastCGI接口在Linux下是socket,(这个socket可以是文件socket,也可以是ip socket)。

为了调用CGI程序,还需要一个FastCGI的wrapper (wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。

当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。

详细的过程,如图1所示。

图1 Nginx+FastCGI运行原理三、spawn-fcgi与PHP-FPM前面介绍过,FastCGI接口方式在脚本解析服务器上启动一个或者多个守护进程对动态脚本进行解析,这些进程就是FastCGI进程管理器,或者称之为FastCGI引擎,spawn-fcgi与PHP-FPM就是支持PHP的两个FastCGI进程管理器。

下面简单介绍spawn-fcgi与PHP-FPM的异同。

spawn-fcgi是HTTP服务器lighttpd的一部分,目前已经独立成为一个项目,一般与lighttpd配合使用来支持PHP,但是ligttpd的spwan-fcgi在高并发访问的时候,会出现内存泄漏甚至自动重启FastCGI的问题。

Nginx是个轻量级的HTTP server,必须借助第三方的FastCGI处理器才可以对PHP 进行解析,因此Nginx+spawn-fcgi的组合也可以实现对PHP的解析,这里不过多讲述。

PHP-FPM也是一个第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的,在安装的时候也需要和PHP源码一起编译,也就是说PHP-FPM被编译到PHP内核中,因此在处理性能方面更加优秀;同时它在处理高并发方面也比spawn-fcgi引擎好很多,因此,推荐Nginx+PHP/PHP-FPM这个组合对PHP进行解析。

FastCGI 的主要优点是把动态语言和HTTP Server分离开来,所以Nginx与PHP/PHP-FPM经常被部署在不同的服务器上,以分担前端Nginx服务器的压力,使Nginx 专一处理静态请求和转发动态请求,而PHP/PHP-FPM服务器专一解析PHP动态请求。

四、 PHP与PHP-FPM的安装及优化1.下载安装包从官方网站下载PHP源码包,这里下载的是稳定版php-5.2.13.tar.gz。

从/downloads/下载对应的PHP-FPM源码包,这里下载的是php-5.2.13-fpm-0.5.13.diff.gz。

需要注意,在下载软件包版本时,尽量使PHP和PHP-FPM版本一致,如果版本之间相差太大,可以会出现兼容问题。

2.配置安装环境安装PHP需要下面软件包的支持,如果没有安装,请自行安装。

gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel由于各个Linux系统版本的不确定性,读者也可以在安装PHP过程中,根据错误提示信息,安装对应的软件库。

3.开始编译安装PHP和PHP-FPM编译安装PHP和PHP-FPM很简单,下面是安装过程:[root@localhost local]#tar zxvf php-5.2.13.tar.gz[root@localhost local]#gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1[root@localhost local]#cd php-5.2.13[root@localhost php-5.2.13]#./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpm[root@localhost php-5.2.13]#make[root@localhost php-5.2.13]#make install[root@localhost php-5.2.13]cp php.ini-dist /usr/local/php/lib/php.ini其中,第二步将PHP-FPM作为补丁加入PHP源码中。

在“./configure”编译选项中,指定将PHP安装到/usr/local下,“--enable-fastcgi”是启用对PHP的FastCGI支持,“--enable-fpm”是激活对FastCGI模式的fpm支持。

在编译PHP时可以加入很多编译选项,但是这里为了介绍PHP的FastCGI功能没有加入更多的编译选项。

4.配置与优化PHP-FPMPHP的全局配置文件是php.ini,在上面的步骤中,已经将此文件复制到了/usr/local/php/lib/php.ini下。

可以根据每个应用需求的不同,对php.ini进行相应的配置。

下面重点介绍PHP-FPM引擎的配置文件。

根据上面指定的安装路径,PHP-FPM的默认配置文件为/usr/local/php/etc/php-fpm.conf。

php-fpm.conf是一个XML格式的纯文本文件,其内容很容易看明白。

这里重点介绍几个重要的配置标签:标签listen_address是配置fastcgi进程监听的IP地址以及端口,默认是127.0.0.1:9000。

<value name="listen_address">127.0.0.1:9000</value>标签display_errors用来设置是否显示PHP错误信息,默认是0,不显示错误信息,设置为1可以显示PHP错误信息。

<value name="display_errors">0</value>标签user和group用于设置运行FastCGI进程的用户和用户组。

需要注意的是,这里指定的用户和用户组要和Nginx配置文件中指定的用户和用户组一致。

<value name="user">nobody</value><value name="group">nobody</value>标签max_children用于设置FastCGI的进程数。

根据官方建议,小于2GB内存的服务器,可以只开启64个进程,4GB以上内存的服务器可以开启200个进程。

<value name="max_children">5</value>标签request_terminate_timeout用于设置FastCGI执行脚本的时间。

默认是0s,也就是无限执行下去,可以根据情况对其进行修改。

<value name="request_terminate_timeout">0s</value>标签rlimit_files用于设置PHP-FPM对打开文件描述符的限制,默认值为1024。

这个标签的值必须和Linux内核打开文件数关联起来,例如要将此值设置为65535,就必须在Linux命令行执行'ulimit -HSn 65536'。

<value name="rlimit_files">1024</value>标签max_requests指明了每个children最多处理多少个请求后便会被关闭,默认的设置是500。

<value name="max_requests">500</value>标签allowed_clients用于设置允许访问FastCGI进程解析器的IP地址。

如果不在这里指定IP地址,Nginx转发过来的PHP解析请求将无法被接受。

<value name="allowed_clients">127.0.0.1</value>5.管理FastCGI进程在配置完php-fpm后,就可以启动FastCGI进程了。

启动fastcgi进程有两种方式:/usr/local/php/bin/php-cgi --fpm或者/usr/local/php/sbin/php-fpm start建议采用第二种方式启动FastCGI进程。

/usr/local/php/sbin/php-fpm还有其他参数,具体为start|stop|quit|restart|reload|logrotate。

每个启动参数的含义如下:θ start,启动PHP的FastCGI进程。

θ stop,强制终止PHP的FastCGI进程。

相关文档
最新文档