希望大家都好
我已经在Ubuntu 18.04 WSL上设置了LEMP环境。我将PHP7.1-FPM,Composer和NPM用于从Web服务器运行的应用程序。
我已经设置了虚拟主机文件,可以浏览到网页并打开应用程序,并通过localhost:80连接到数据库。但是我的问题是,感觉LEMP设置几乎超时了。在应用程序上,有一个60秒的计时器,在该计时器上它会自动刷新并从MySQL数据库中提取更新的信息。如果按内置按钮刷新它,似乎工作正常,但是在尝试执行自动刷新的那一刻,它会抛出一条错误消息:
net :: ERR_INCOMPLETE_CHUNKED_ENCODING未捕获(已承诺)错误:e.explor的网络错误在XMLHttpRequest.f.onerror
我确实尝试添加代理缓冲区:
proxy_buffer_size 1024k;
我感觉好像Windows 10在发挥作用。据我所知,端口80在PID4 HTTP服务的Windows 10上正在使用,该服务由打印后台处理程序使用,但是当我将其设置为其他端口时,它甚至无法连接(1111)。
我只是从这个开始。我在故障排除方面有(相对于大多数人来说是基本的)知识,但是WSL和LEMP对我来说是一个新领域,因此,任何帮助将不胜感激。
提前谢谢了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到您描述的问题,可能涉及多个方面,包括网络配置、代理设置、资源限制以及WSL与Windows系统的交互问题。以下是一些可能的解决方案和排查步骤:
检查Nginx配置: 确保您的Nginx配置正确设置了代理缓冲区和其他与性能相关的参数。您已经尝试了增加proxy_buffer_size
,但可能还需要考虑其他几个参数来优化长连接和大响应的处理:
proxy_buffers 8 16k;
proxy_buffering on;
proxy_max_temp_file_size 0;
proxy_read_timeout 120s;
这里增加了缓冲区的数量和大小,并延长了读取超时时间。
资源限制: WSL可能会受到资源限制,尤其是CPU和内存。检查WSL是否分配到了足够的资源。可以通过Windows的“适用于Linux的Windows子系统”设置调整这些值。
端口冲突: 虽然您提到端口80在Windows上被PID4占用,但如果您能通过localhost:80访问应用,说明Nginx成功监听了这个端口。如果更改端口后无法连接,确保Nginx配置文件中监听的端口已相应更新,并且防火墙没有阻止新的端口。
Windows与WSL通信: 确认Windows主机到WSL中的Nginx服务器的通信没有问题。有时,WSL2的网络栈可能需要特别注意。可以尝试使用WSL的IP地址而不是localhost进行访问,以排除任何DNS或localhost解析问题。
PHP-FPM和Nginx的超时设置: 在PHP-FPM的pool配置文件(通常是 /etc/php/7.1/fpm/pool.d/www.conf
)中,检查并适当增加request_terminate_timeout
和 php_admin_value[max_execution_time]
的值,以避免因执行时间过长而导致的中断。
日志分析: 查看Nginx、PHP-FPM以及系统的错误日志(如 /var/log/nginx/error.log
和 /var/log/php7.1-fpm.log
),这些日志通常会提供关于错误的具体信息。
资源监控: 使用top
或htop
命令监控WSL中的资源使用情况,查看是否有进程消耗过多资源导致响应缓慢或超时。
重启服务和WSL: 有时候,简单地重启Nginx、PHP-FPM服务甚至是整个WSL实例,可以解决一些临时性的问题。
如果以上步骤都不能解决问题,可能需要更详细的日志信息或者进一步的诊断来确定具体原因。希望这些建议对您有所帮助!