PHP多进程爬虫-Curl中的 SSL 和 pcntl_fork
起源
最近在使用PHP多进程写爬虫的时候,遇到一个很奇怪的问题。在PHP多进程程序中,如果父进程对某域名(比如:https://www.jd.com)进行https请求后,那么子进程https请求同样的网站,会请求失败。
比如:
<?php
在使用PHP多进程爬虫时,遇到一个问题是:父进程对某域名进行HTTPS请求后,子进程请求相同网站会失败。原因是libcurl库在生成HTTPS请求的加密密钥时可能依赖于PID,导致子进程的密钥与网站公钥不匹配。解决方案包括使用HTTP访问,或者在所有子进程中都采用HTTP,或者使用`pcntl_fork`后重新初始化Curl会话。
SSL 和 pcntl_fork最近在使用PHP多进程写爬虫的时候,遇到一个很奇怪的问题。在PHP多进程程序中,如果父进程对某域名(比如:https://www.jd.com)进行https请求后,那么子进程https请求同样的网站,会请求失败。
比如:
<?php
2502

被折叠的 条评论
为什么被折叠?