`
2277259257
  • 浏览: 515445 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Nginx(二):实现fastcgi协议代理

 
阅读更多
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://xuding.blog.51cto.com/4890434/1743713

一、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

phpsession记录存放形式:文件

php_value[session.save_path]  =

phpsession记录存放路径,集群是关键

    注意:  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;:指明反向代理的服务器

     addressfastcgi 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_pathfcgi的缓存定义在http{ } 配置段上下文

        2) 调用缓存(serverlocationif)时至少应该指定三个参数fastcgi_cachefastcgi_cache_keyfastcgi_cache_valid

本文出自 “许鼎的博客” 博客,请务必保留此出处http://xuding.blog.51cto.com/4890434/1743713

分享到:
评论

相关推荐

    nginx-1.14.0.zip_nginx fastcgi

    2. **进程通信**:Nginx通过FastCGI协议与FastCGI进程通信,将请求发送给合适的后端应用进程,如PHP解释器。 3. **处理请求**:FastCGI进程接收请求,执行相应的脚本,并生成动态内容。 4. **返回响应**:处理完毕...

    centos的nginx+php的fastcgi模式编译安装

    FastCGI是一种用于Web服务器与动态内容生成器之间通信的协议,比传统的CGI更有效率。PHP-FPM(FastCGI Process Manager)是PHP的一个扩展,它允许Nginx通过FastCGI接口与PHP交互,提高PHP脚本处理速度。 3. **编译...

    实战Nginx:取代Apache的高性能Web服务器+张宴.扫描版

    5. **反向代理与负载均衡**:Nginx强大的反向代理功能可以将请求分发到不同的服务器,实现负载均衡。书里会介绍多种负载均衡策略,如轮询、权重分配、最少连接等。 6. **SSL/TLS安全**:在当前网络安全日益重要的...

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

    - **负载均衡**:对于高流量网站,可以考虑使用Nginx作为反向代理服务器,将请求分发到多个后端服务器上,实现负载均衡。 通过以上步骤,我们可以有效地搭建起Nginx与PHP(FastCGI)的集成环境,并对其进行优化,以...

    Nginx+VFP FASTCGI

    总结,Nginx+VFP FASTCGI的组合旨在利用Nginx的高效静态内容处理能力和VFP的数据库处理能力,通过FASTCGI协议在两者之间建立桥梁,提供动态Web服务。这种架构适用于需要在高并发环境下运行VFP应用的场景。

    安装windows 下 php7+nginx+fastcgi

    其次,**Nginx**是一款高性能的HTTP和反向代理服务器,同时也是邮件协议代理服务器。Nginx以其高效的并发处理能力、低内存占用和丰富的模块库而闻名。在本场景中,Nginx将作为Web服务器,接收HTTP请求并转发给...

    开源电子书:Nginx 开发手册文档.pdf

    2. 模块化结构:Nginx 采用模块化的结构,包括过滤器、协议模块、负载均衡模块等多种模块,可以根据需要灵活地组合不同的模块。 3. SSL 和 TLS 支持:Nginx 支持 SSL 和 TLS 加密连接,可以提供安全的数据传输。 4. ...

    带完整详细目录:Nginx高性能Web服务器详解+深入理解Nginx:模块开发与架构解析(第2版)陶辉著

    - 反向代理:Nginx可以作为前端代理服务器,接收来自客户端的请求,然后转发给后端应用服务器,隐藏后端的真实结构。 - 负载均衡策略:轮询、权重、IP哈希等,用于分散流量到不同的后端服务器,提高系统可用性。 ...

    Debian+Nginx+PHP(FastCGI)+MySQL搭建LNMP服务器.rar_LNMP服务器_debian_fast

    **第二步:配置Nginx** 编辑Nginx配置文件,通常位于`/etc/nginx/sites-available/`,创建一个新的配置文件,例如`my-site.conf`,并添加以下内容: ``` server { listen 80; server_name your_domain.com; # ...

    实战Nginx取代Apache的高性能Web服务器_文字版

    1. 反向代理:Nginx作为前端服务器,接收客户端请求并转发到后端服务器,隐藏真实服务器集群的信息。 2. 负载均衡:通过`upstream`块定义一组后端服务器,Nginx可以采用轮询、权重、最少连接等多种策略进行负载分配...

    nginx1.3-php5-https

    Nginx 以其高效的并发处理能力、低内存占用和反向代理功能而闻名。1.3 版本在稳定性和速度上进行了提升,对HTTP/1.1协议的支持更加完善,并引入了对WebSocket协议的初步支持。 【PHP5】 PHP5 是 PHP 语言的一个重要...

    Linux上配置Nginx+PHP5(FastCGI)

    【知识点详解】 Linux系统上配置Nginx与PHP5(FastCGI)组合,是一...这样的配置使得Nginx主要负责静态内容的处理和反向代理,动态内容通过FastCGI协议交由PHP处理,从而达到优化服务器资源分配,提高整体性能的目的。

    nginx1.23.2-麒麟-aarch64

    Nginx 是一款高性能、轻量级的Web服务器和反向代理服务器,广泛应用于互联网服务,以其高效的并发处理能力和低内存消耗而闻名。在"nginx1.23.2-麒麟-aarch64"这个版本中,我们关注的是Nginx 1.23.2在麒麟操作系统上...

    图书:Nginx HTTP服务器

    4. **反向代理**:Nginx作为反向代理可以隐藏后端服务器,提高安全性并实现负载均衡。学习如何配置反向代理规则,以及使用proxy_pass指令。 5. **负载均衡**:通过upstream模块,Nginx可以将请求分发到多个后端...

    6.2: 部署LNMP 、 Nginx+FastCGI 、 Nginx高级技术 、 总结和答疑(1).docx

    在这个环境中,Linux作为操作系统,Nginx作为反向代理服务器处理静态内容,MySQL存储动态数据,PHP作为后端处理动态请求。以下是部署LNMP环境的具体步骤: 1. **安装Nginx** - 首先,确保系统安装了必要的依赖,如...

    nginx代理.docx

    4. **邮件代理服务**:Nginx 支持 IMAP/POP3/SMTP 代理,包括 STARTTLS 和 STLS 协议,实现安全的邮件通信,并支持多种认证方式。 ### 配置示例 ```nginx http { upstream backend { server backend1.example....

    nginx-1.5.17

    《Nginx详解:构建高性能Web服务与反向代理》 Nginx,作为一个轻量级、高性能的HTTP服务器和反向代理服务器,已经成为互联网上广泛使用的基石技术之一。其核心优势在于其高效的异步非阻塞I/O模型,使得在处理大量...

    Nginx学习丛书 Nginx应用与提高

    本章将讲述如何利用Nginx实现HTTP负载均衡,包括轮询、权重分配、IP哈希等多种策略,以及反向代理的设置,以提升系统的可用性和稳定性。 4. **第7章 Nginx的Rewrite规则与实例**: Nginx的URL重写功能在SEO和动态...

Global site tag (gtag.js) - Google Analytics