WSL里Nginx+PHP,经常反映慢,卡住
在wsl2
里搭建lnmp
+ php
环境,经常会很慢或者卡死。
查看 nginx
的错误日志 error.log
后发现类似: upstream: fastcgi://unix:/tmp/php-fcgi.sock
这样的错误,查看php的慢日志里也写入了相关数据
原因:
WSL
对 Unix Socket
的支持并不怎么好,所以使用Unix Socket
方式连接 Nginx
+ PHP
才会经常出现这样的问题
解决办法
在nginx.conf
的http
节点添加:
fastcgi_buffer_size 1024k;
fastcgi_buffers 16 256k;
fastcgi_busy_buffers_size 2048k;
fastcgi_temp_file_write_size 4096k;
fastcgi_buffering off;
然后重载 nginx
感谢大佬 @largezhou
本作品采用《CC 协议》,转载必须注明作者和本文链接
集成工具+wsl 完美
解决方案, 不用windows (逃。
用win的nginx,其他的用wsl
fastcgi_buffering off; 我记得wsl1需要配置这个,原来在wsl2依然需要配置啊。。。
你改成这样之后,又【可能】会有另一个问题,,,就是错误页面白屏,,,因为响应被截断了,html不完整,,
如果 php 项目目录挂在到 win上目录,也就是 /mnt/c /mnt/d 的话。其实慢的速度。是直接放到wsl空间内 10*x 的数量级。。。跨系统的io很慢。如果想要再快一点可以把项目放到wsl内部,不过一些win上的gui软件可能访问不是很方便
IO问题,WSL通病,忍了吧,随着以后更新会好的