0

我确实阅读并尝试了以下内容;

但是这些都没有解决这个问题。


来自 Windows的问题;当我通过 浏览位于 WSL2 中的网站时http://myproject.testhttps://myproject.test或者127.0.0.1前 2-3 个请求进行得很快(<100 毫秒)。然后下一个请求在没有被阻塞的情况下恰好需要 60000 毫秒(1 分钟)才能被接收到。

Windows 10 上的配置

  • 防火墙已禁用
  • 127.0.0.1 myproject.test添加到C:\Windows\System32\drivers\etc\hosts
  • 已安装mkcerts
  • 安装了 Ubuntu 20.04 的 WSL 2

WSL 2 上的配置

  • Ubuntu 20.04
  • nginx 1.18
  • mysql 8.0
  • php-fpm 7.4

项目

  • 拉拉维尔
  • 地点/home/clement/projects/myproject/
  • 证书(使用 mkcert 生成)/home/clement/projects/certs/
  • 所有者:clement:www-data
  • 许可:(777仅用于测试和开发目的)

/etc/nginx/sites-available/myproject.test

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;

    ssl_certificate /home/clement/projects/certs/myproject.test.pem;
    ssl_certificate_key /home/clement/projects/certs/myproject.test-key.pem;

    client_max_body_size 108M;

    access_log /var/log/nginx/application.access.log;

    server_name myproject.test;
    root /home/clement/projects/myproject/public;
    index index.php;

    if (!-e $request_filename) {
        rewrite ^.*$ /index.php last;
    }

    location ~ \.php$ {
        fastcgi_buffering off;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log";
        include fastcgi_params;
    }

}

我有同样的问题使用fastcgi_pass 127.0.0.1:9000;fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

当我这样做php -S localhost:8080php artisan serve在项目中时,一切正常。

使用日志编辑
这是我在 nginx 上获得的日志,但即使有了这些信息,我仍然找不到任何解决问题的资源。

2020/08/07 23:06:30 [错误] 1987#1987: *6 上游超时(110:连接超时)同时读取上游,客户端:127.0.0.1,服务器:myproject.test,请求:“GET / _debugbar/assets/javascript?v=1588748787 HTTP/1.1”,上游:“fastcgi://unix:/run/php/php7.4-fpm.sock:”,主机:“myproject.test”,引用者:“http ://myproject.test/"

或使用 IP

2020/08/08 01:43:01 [错误] 4080#4080: *4 上游超时(110:连接超时),同时读取上游,客户端:127.0.0.1,服务器:myproject.test,请求:“GET / HTTP/1.1”,上游:“fastcgi://127.0.0.1:9000”,主机:“myproject.test”

4

1 回答 1

2

我终于找到了问题。尽管我按照说明安装了 WSL 2,但它使用的是 WSL 1。

powershell中我跑 wsl -l -v并得到了结果

|---------------------|------------------|------------------|
|         NAME        |       STATE      |      VERSION     |
|---------------------|------------------|------------------|
|    Ubuntu-20.04     |      Stopped     |         1        |
|---------------------|------------------|------------------|

更新内核后,我可以使用命令将版本更改为 2 wsl --set-version Ubuntu-20.04 2

现在一切正常

于 2020-08-08T15:50:48.737 回答