nginx - 我看到 别人的 windows php有这样的配置 . 请问这样有什么好处吗 ?

 赛亚兔备_393 发布于 2022-12-01 12:00
http {

upstream php_processes {
    server 127.0.0.1:9001 weight=1;
    server 127.0.0.1:9002 weight=1;
}


server {

        ## Regular PHP processing.
        location ~ \.php$ {
            try_files  $uri =404;
            fastcgi_pass   php_processes;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

}


}

当然省略了好多 ... 好像是为了 php 多进程

9 个回答
  • 目测是nginx的设置啊,你确定这个是PHP的配置文件?

    2022-12-01 12:31 回答
  • 首先,这是nginx配置文件,意思是把.php结尾的请求交给fastcgi解释器;
    其次,php-fpm本身就是一个fastcgi的进程管理器,支持多进程,支持动态增减进程数;
    再次,如果在网络上有多个不同的php-fpm,可以你给你nginx配置实现多机负载均衡;
    最后,这样配的好处是,如果一个节点挂掉了,nginx可以把请求转到另一个上,实现高可用。

    2022-12-01 12:31 回答
  • 大哥这是nginx的反向代理的配置呀

    2022-12-01 12:31 回答
  • 这个是nginx的配置文件,不是PHP的配置,php的配置文件是php.ini

    2022-12-01 12:31 回答
  • 这不是nginx的配置吗?怎么变成php的啦

    2022-12-01 12:31 回答
  • 楼上都给赞 !!! 哈哈哈 嗯 确实是 nginx 反向代理配置 .

    2022-12-01 12:31 回答
  • 这是负载均衡的配置吧,方向代理在location里面

    2022-12-01 12:31 回答
  • 上面一堆答案都没说到重点。

    upstream php_processes {
        server 127.0.0.1:9001 weight=1;
        server 127.0.0.1:9002 weight=1;
    }
    

    为什么要开两个端口,9001和9002,也就是两个可执行的线程?
    举例:

    <?php
    echo file_get_contents("test.php");
    ?>
    

    如果线程数只有一个,那么这个代码就会等待test.php的执行,然后test.php会等待这个php文件的执行结束……
    于是,就"死锁"了……无限等待,然后30秒超时就跪掉了。
    所以WNMP必须这么配置。
    这个配置也只是用来本地测试下代码用而已。
    要更专业的话,也不建议用Windows,也不会只给2个处理线程。
    (下面那部分就是很常规的默认的Nginx的配置了,不解释)

    2022-12-01 12:31 回答
  • 楼上回答是正解,upstream 是Nginx的负载均衡配置,意思是按照相同的权重把请求分布到两个端口上,其用意自然也就是多个进程来处理任务,一是提高并发数量,第二就是防止文件锁等各种锁的发生

    2022-12-01 12:31 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有