我看到 别人的 windows php有这样的配置 . 请问这样有什么好处吗 ?
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 years, 6 months ago
Answers
上面一堆答案都没说到重点。
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的配置了,不解释)
革命的枪杆
answered 9 years, 6 months ago