一、LNMP架构搭建
1.LNMP实现方案
(1)LAMP架构支持三种httpd+php方案
1) 在httpd服务中集成模块(libphp5.so)化方式
2) CGI方式(一台hhtpd服务器响应http请求时调用新的进程处理php请求)
3) fastcgi后端提供cgi server process方式(C/S架构的方式使得php服务分离出来成为独立服务,通过监听套接字和前端httpd扮演的代理客户端交互,通过php-XXX与后端的服务进行动态调用)
(2)LNMP架构仅支持一种Nginx+php结合方式:
Nginx:集成ngx_http_fastcgi_module模块实现代理请求功能,例如:
server{
...
location~* \.php$ {
…}
}
php-fpm:提供fastcgi模式,独立进程处理,有空闲等待进程方式处理前端 ngx_http_fastcgi_module发送的请求
php-mysql:mysql-server, mariadb-server驱动和后面的server服务进行交互
注意:
Nginx不支持动态装载米快,所以要确保编译php工作为fpm机制时将ngx_http_fastcgi_module编译到Nginx程序中,在./configure时候要加入--enable-fpm选项。
2.php-fpm程序包
php-fpm包提供fcgi模式的php程序端,其不能和php程序包同时安装。RPM形式安装完成后提供主配置文件/etc/php-fpm.conf,分段配置文件/etc/php-fpm.d/*。
/etc/php-fpm.d/www.conf配置文件(根据实际情况配置):
;
|
表示注释该行信息
|
listen = 127.0.0.1:9000
|
监听端口,0.0.0.0表示本机所有地址。
支持远程调用应该监听在本机的远程通信端口
|
;listen.backlog = -1
|
后援等待队列的长度,-1表示无限制
|
listen.allowed_clients = 127.0.0.1
|
授权允许可请求主机,基于IP的控制机制,注释表示允许所
|
;listen.owner = nobody
|
监听服务进程的主机默认以什么用户身份运行,nobody表示普通用户
|
;listen.group = nobody
|
监听服务进程的主机默认以什么用户组身份运行
|
;listen.mode = 0666
|
监听服务进程的主机默认以什么权限运行
|
user = apache
|
用户,RPM包制作者修改,编译安装非此结果
|
group = apache
|
用户组,RPM包制作者修改,编译安装非此结果
|
pm = static|dynamic
|
进程控制器生成子进程方式
|
;pm.status_path = /status
|
状态机制
|
;ping.path = /ping
|
ping机制,一般用于提供监控机制
|
php_admin_value[error_log] =
|
连接池错误日志位置
|
php_admin_flag[log_errors] = on
|
是否在错误日志中将于管理相关的标志打开
|
php_value[session.save_handler] = files
|
php的session记录存放形式:文件
|
php_value[session.save_path] =
|
php的session记录存放路径,集群是关键
|
注意: pm连接池模式有两种,pm = static|dynamic
static:固定数量的子进程;pm.max_children;
dynamic:子进程数据以动态模式管理;选择该项需呀启用以下配置
pm.start_servers=
|
开始启用进程数
|
pm.min_spare_servers=
|
最小空闲进程数
|
pm.max_spare_servers=
|
最大空闲进程数
|
;pm.max_requests =
|
每个子进程自多允许响应多少请求,超过就kill
|
二、Nginx:ngx_http_fastcgi_module模块配置
1.fastcgi_passaddress;:指明反向代理的服务器
address是fastcgi server监听的IP地址和端口;
示例:fastcgi_pass 127.0.0.1:9000;
2.fastcgi_index# ;:定义fastcgi应用的默认主页;
示例:fastcgi_index index.php;
3.fastcgi_paramparameter value [if_not_empty];:设定传递给后端fastcgi server参数及其值;
示例:fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
/index.php ---> /scripts/index.php
4.fastcgi_cache_pathpath [levels=levels][use_temp_path=on|off] keys_zone=name:size [inactive=time][max_size=size];
定义缓存:缓存空间等;应用于http配置段。
path
|
数据缓存在磁盘中位置
|
levels=#[:#[:#]]
|
定义的目录级别,levels=2:1表示两位十六进制字符命名目录,每个目录中还有目录
|
keys_zone=name:size
|
元数据缓存在内存中;name: cache的标识符;size:元数据cache大小;
|
inactive=time
|
缓存的非活动时间
|
max_size
|
缓存空间上限
|
5.fastcgi_cachezone | off;:调用定义过的缓存;
zone即为通过fastcgi_cache_path定义缓存时其keys_zone参数中的name;
6.fastcgi_cache_keystring;:定义如何使用缓存键;
示例:fastcgi_cache_key $request_uri;
7.fastcgi_cache_methods GET | HEAD | POST ...;
为何请求方法对应的请求进行缓存,默认为GET和HEAD;
8.fastcgi_cache_min_usesnumber;
缓存项的最少使用次数;
9.fastcgi_cache_use_staleerror | timeout | invalid_header | updating | http_500 | http_503 | http_403 |http_404 | off ...;
是否可使用stale缓存项响应用户请求;
10.fastcgi_cache_valid[code ...] time;
对不同响应码的响应设定其可缓存时长;
示例:
fastcgi_cache_valid 200 302 10m;
fastcgi_cache_valid404 1m;
注意:
1) 定义缓存在fastcgi_cache_path;fcgi的缓存定义在http{ } 配置段上下文
2) 调用缓存(server、location、if)时至少应该指定三个参数fastcgi_cache、fastcgi_cache_key、fastcgi_cache_valid
本文出自 “许鼎的博客” 博客,请务必保留此出处http://xuding.blog.51cto.com/4890434/1743713
相关推荐
2. **进程通信**:Nginx通过FastCGI协议与FastCGI进程通信,将请求发送给合适的后端应用进程,如PHP解释器。 3. **处理请求**:FastCGI进程接收请求,执行相应的脚本,并生成动态内容。 4. **返回响应**:处理完毕...
FastCGI是一种用于Web服务器与动态内容生成器之间通信的协议,比传统的CGI更有效率。PHP-FPM(FastCGI Process Manager)是PHP的一个扩展,它允许Nginx通过FastCGI接口与PHP交互,提高PHP脚本处理速度。 3. **编译...
5. **反向代理与负载均衡**:Nginx强大的反向代理功能可以将请求分发到不同的服务器,实现负载均衡。书里会介绍多种负载均衡策略,如轮询、权重分配、最少连接等。 6. **SSL/TLS安全**:在当前网络安全日益重要的...
- **负载均衡**:对于高流量网站,可以考虑使用Nginx作为反向代理服务器,将请求分发到多个后端服务器上,实现负载均衡。 通过以上步骤,我们可以有效地搭建起Nginx与PHP(FastCGI)的集成环境,并对其进行优化,以...
总结,Nginx+VFP FASTCGI的组合旨在利用Nginx的高效静态内容处理能力和VFP的数据库处理能力,通过FASTCGI协议在两者之间建立桥梁,提供动态Web服务。这种架构适用于需要在高并发环境下运行VFP应用的场景。
其次,**Nginx**是一款高性能的HTTP和反向代理服务器,同时也是邮件协议代理服务器。Nginx以其高效的并发处理能力、低内存占用和丰富的模块库而闻名。在本场景中,Nginx将作为Web服务器,接收HTTP请求并转发给...
2. 模块化结构:Nginx 采用模块化的结构,包括过滤器、协议模块、负载均衡模块等多种模块,可以根据需要灵活地组合不同的模块。 3. SSL 和 TLS 支持:Nginx 支持 SSL 和 TLS 加密连接,可以提供安全的数据传输。 4. ...
- 反向代理:Nginx可以作为前端代理服务器,接收来自客户端的请求,然后转发给后端应用服务器,隐藏后端的真实结构。 - 负载均衡策略:轮询、权重、IP哈希等,用于分散流量到不同的后端服务器,提高系统可用性。 ...
**第二步:配置Nginx** 编辑Nginx配置文件,通常位于`/etc/nginx/sites-available/`,创建一个新的配置文件,例如`my-site.conf`,并添加以下内容: ``` server { listen 80; server_name your_domain.com; # ...
1. 反向代理:Nginx作为前端服务器,接收客户端请求并转发到后端服务器,隐藏真实服务器集群的信息。 2. 负载均衡:通过`upstream`块定义一组后端服务器,Nginx可以采用轮询、权重、最少连接等多种策略进行负载分配...
Nginx 以其高效的并发处理能力、低内存占用和反向代理功能而闻名。1.3 版本在稳定性和速度上进行了提升,对HTTP/1.1协议的支持更加完善,并引入了对WebSocket协议的初步支持。 【PHP5】 PHP5 是 PHP 语言的一个重要...
【知识点详解】 Linux系统上配置Nginx与PHP5(FastCGI)组合,是一...这样的配置使得Nginx主要负责静态内容的处理和反向代理,动态内容通过FastCGI协议交由PHP处理,从而达到优化服务器资源分配,提高整体性能的目的。
Nginx 是一款高性能、轻量级的Web服务器和反向代理服务器,广泛应用于互联网服务,以其高效的并发处理能力和低内存消耗而闻名。在"nginx1.23.2-麒麟-aarch64"这个版本中,我们关注的是Nginx 1.23.2在麒麟操作系统上...
4. **反向代理**:Nginx作为反向代理可以隐藏后端服务器,提高安全性并实现负载均衡。学习如何配置反向代理规则,以及使用proxy_pass指令。 5. **负载均衡**:通过upstream模块,Nginx可以将请求分发到多个后端...
在这个环境中,Linux作为操作系统,Nginx作为反向代理服务器处理静态内容,MySQL存储动态数据,PHP作为后端处理动态请求。以下是部署LNMP环境的具体步骤: 1. **安装Nginx** - 首先,确保系统安装了必要的依赖,如...
4. **邮件代理服务**:Nginx 支持 IMAP/POP3/SMTP 代理,包括 STARTTLS 和 STLS 协议,实现安全的邮件通信,并支持多种认证方式。 ### 配置示例 ```nginx http { upstream backend { server backend1.example....
《Nginx详解:构建高性能Web服务与反向代理》 Nginx,作为一个轻量级、高性能的HTTP服务器和反向代理服务器,已经成为互联网上广泛使用的基石技术之一。其核心优势在于其高效的异步非阻塞I/O模型,使得在处理大量...
本章将讲述如何利用Nginx实现HTTP负载均衡,包括轮询、权重分配、IP哈希等多种策略,以及反向代理的设置,以提升系统的可用性和稳定性。 4. **第7章 Nginx的Rewrite规则与实例**: Nginx的URL重写功能在SEO和动态...