欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nginx动态文件处理(NGINX+FASTCGI配置)

程序员文章站 2024-02-21 10:41:16
...

1. nginx动态文件处理

nginx只是一个web服务器,本身没有apache那么强大的功能,通常支持各种模块来实现支持多种功能。Nginx本身只能处理静态页的解析,如果要解析动态页面的话,需要用到反向代理的功能。就是说,把php等动态页面请求转发给后端其它web主机处理(例如:tomcat/iis/apache)。如果访问量比较大的情况下。需要用到nginx负载均衡的架构。

通常转发给后端有两种情况:(php页面的情况):

(1)反向代理
(2)fastcgi

注意:反向代理的后端是web服务器,而fastcgi是实现php的解析程序。
我们先来聊一聊转发给后端的第二种情况,nginx将php页面请求转发给fastcgi程序,这个fastcgi也可以是另一台主机。
2、fastcgi支持
nginx与fastcgi在同一台电脑:
注:配置文件中有相关默认示例,只需要打开相关的注释就可以实现php页面的解析了。以下示例只是应用于nginx与fastcgi安装在同一台电脑的情况,

location ~ \.php$ {
   root           html;
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
   #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
   include        fcgi.conf;
}

通过FastCGI方式支持PHP,php页面由fastcgi代理处理,这也是反向代理的一个应用,这里可以是jsp/asp等脚本。(fastcgiserver)

        # 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.conf;
        }

(1)修改nginx.conf文件如下:
location ~ .php{     root           html;     fastcgi_pass   192.168.129.22:9000;     fastcgi_index  index.php;     fastcgi_param  SCRIPT_FILENAME  /opt/www/fastcgi_script_name;
include fcgi.conf;
}
两处说明:一个是访问nginx,nginx把请求转发到fastcgi处理,但是php页面又是在fastcgi那台机器上的/opt/www目录中,所以需要修改以上两个地方才能实现php页面的解析。
(2)修改/usr/local/php/etc/php-fpm.conf文件
注:在安装fastcgi主机上:
192.168.129.22:9000
192.168.129.21
说明:
第一处监听本机的9000端口,默认是127.0.0.1,由于是分布式应用,需要修改。
第二处只允许nginx发来的请求给予解析,也需要修改。

相关标签: nginx fastcgi