lighttpd 配置全接触(2)——fastcgi php配置

 

fastcgi 效率官方配置

http://redmine.lighttpd.net/wiki/1/Docs:PerformanceFastCGI

 

  fastcgi相比cgi的自然是速度快,主要体现在cgi服务进程一直提供服务,不想cgi每次请求都要启动结束一个cgi进程。 

webserver可以通过unix domain socket和普通TCP/IP socket进行通讯。至此引入的另外一个好处是fastcgi和weberver可以

在不同机器上运行。

   用php来做fastcgi,其实perl之类的都可以。在ubuntu下安装php后会有/usr/bin/php 和 /usr/bin/php-cgi.这两者是不一样的

前者不支持cgi后者支持cgi,互不兼容。从输出上看 php-cgi 会多输出一下两行,

X-Powered-By: PHP/5.3.2-1ubuntu4.7

Content-type: text/html

 

 

lighttpd 的fastcgi配置

   fastcgi.debug   日志级别,目前就0和1两级,默认为0,设置为1时会有很多log打出。

   fastcgi.map-extensions 后缀的映射 例如 fastcgi.map-extensions = ( ".php3" => ".php" )

   fastcgi.server  具体fastcgi的配置

      fastcgi.server = 

             (  "extension" =>

                     (

                         ( "host" => 192.68.4.4,

                            "port" =>  9090

                          )

                          ("host" => 192.68.4.3,

                             "port" =>  9090

                           )

                      )

              )

 

 

 extension: 文件名的后缀,或者说是前缀(如果是前缀必须 / 开头)

 

"host":       FastCGI 进程的服务器名字,可以是IP地址,域名

"port":       FastCGI 进程的端口号

"socket":     unix-domain socket路径。 因为fastcgi进程既可以跟webserver同一机器,也可以不同机器。所以当不同机器时使用 host:port, 同一台机器时使用unix域套接字。

 

"bin-path":   FastCGI 的本地二进制文件

 

 

"mode":      is the FastCGI protocol mode.

                Default is "responder", also "authorizer"

                mode is implemented.

"docroot":    

"check-local":   在发送给fastcgi之前,检查请求的文件是否存在

  :"broken-scriptfilename": breaks SCRIPT_FILENAME in a wat that

                PHP can extract PATH_INFO from it (default: disabled)

  :"disable-time": time to wait before a disabled backend is checked

                again

  :"allow-x-send-file": controls if X-LIGHTTPD-send-file headers

                are allowed

  :"fix-root-scriptname": fix broken path-info split for "/" extension ("prefix")

 

  如果设置了 bin-path 

 

"max-procs": 最大的fastcgi进程个数

"bin-environment": 在目前环境变量的基础上,增加新配置的。

"bin-copy-environement": 完全采用配置的环境变量。

"kill-signal": 杀掉fastcgi的信号,默认是SIGTERM

 

 

后缀配置

  fastcgi.server = ( ".php" =>

      (( "host" => "127.0.0.1",

         "port" => 1026,

         "bin-path" => "/usr/local/bin/php"

      )),

      ".php4" =>

      (( "host" => "127.0.0.1",

         "port" => 1026

      ))

    )

 

前缀配置

 

    fastcgi.server = ( "/remote_scripts/" =>

      (( "host" => "192.168.0.3",

         "port" => 9000,

         "check-local" => "disable",

         "docroot" => "/" # remote server may use

                          # it's own docroot

      ))

    )

 

 

负载均衡的配置,必须是相同后缀/前缀指定多个fastcgi后端

     fastcgi.server = ( ".php" =>

     (( "host" => "10.0.0.2", "port" => 1030 ),

      ( "host" => "10.0.0.3", "port" => 1030 ))

    )

 

 

   使用外部fastcgi 进程,如果直接写在lighttpd.conf里,只能在本地产生,再同机器可以用外部产生的方式。

用 spawn-fcgi,需要单独下载。

 

sudo apt-get install spawn-fcgi

源代码:http://download.lighttpd.net/spawn-fcgi/

 

你可能感兴趣的:(lighttpd 配置全接触(2)——fastcgi php配置)