在本地 Apache 设置中获取 net::ERR_EMPTY_RESPONSE
Getting net::ERR_EMPTY_RESPONSE on local apache setup
我正在本地开发一个 Web 应用程序,它可以进行 API 调用。一些 API 呼叫突然停止工作,而其他呼叫继续工作。如果我直接转到浏览器中的 api 端点,第一次总是 returns:
This page isn’t working
samplesite.com didn’t send any data.
ERR_EMPTY_RESPONSE
请求headers是:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Cookie: PHPSESSID=xxx; _ga=GAxxx; _gid=GAxxx; __stripe_mid=xxx; __stripe_sid=xxx
Host: samplesite.com
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36
我的 apache 日志中出现错误:
[Mon Jan 20 22:10:18.133644 2020] [core:notice] [pid 4702] AH00052: child pid 6191 exit signal Segmentation fault (11)
[Mon Jan 20 22:14:02.343396 2020] [core:notice] [pid 4702] AH00052: child pid 6241 exit signal Segmentation fault (11)
[Mon Jan 20 22:14:02.343886 2020] [core:notice] [pid 4702] AH00052: child pid 6240 exit signal Segmentation fault (11)
[Mon Jan 20 22:14:07.349923 2020] [core:notice] [pid 4702] AH00052: child pid 6212 exit signal Segmentation fault (11)
尝试获取有关该过程的详细信息 return 没有任何结果:
alan:~$ ps -p 6212
PID TTY TIME CMD
如果我刷新页面,第二次(以及所有其他时间)它将 return 正确的数据(为了测试,我让 api 端点简单地输出 "hello world") .
为了解决我试过:
- 正在重新启动 Apache
- 正在清除浏览器缓存
- 以隐身模式发出请求
- 在 Firefox、Safari 和 Chrome
我刚刚更新到 Catalina,但我认为这无关紧要,因为我相信我之前遇到过这个错误,但它会自行消失。
有什么建议吗?谢谢。
阅读 Firefox 中的错误提供了更多线索。 Firefox 的错误说:
Secure Connection Failed: The page you are trying to view cannot be shown because the authenticity of the received data could not be verified
所以出于某种原因存在 SSL 问题。我已经在本地创建了一个用于测试的自签名 SSL 证书(支持通配符子域);它还没有过期,所以我不确定为什么突然出现问题。
解决方案:不要在本地使用 https 并更新我的 .htaccess 文件以仅在实时站点 (mysite.com) 而不是开发站点 (mysite.test) 上强制使用 https:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} mysite.com$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
我还卸载了 Apache 和 OpenSSL,但我不认为这是解决问题的方法。
试试这个:
RewriteCond %{HTTPS} !on
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ ([^\ ]+)
RewriteRule ^ https://%{HTTP_HOST}%2 [L,R=301]
您仍然希望启用 https 重定向,除了显而易见的,如果您没有完整的 https 支持,您的网站排名将会受到影响。
我正在本地开发一个 Web 应用程序,它可以进行 API 调用。一些 API 呼叫突然停止工作,而其他呼叫继续工作。如果我直接转到浏览器中的 api 端点,第一次总是 returns:
This page isn’t working
samplesite.com didn’t send any data.
ERR_EMPTY_RESPONSE
请求headers是:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Cookie: PHPSESSID=xxx; _ga=GAxxx; _gid=GAxxx; __stripe_mid=xxx; __stripe_sid=xxx
Host: samplesite.com
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36
我的 apache 日志中出现错误:
[Mon Jan 20 22:10:18.133644 2020] [core:notice] [pid 4702] AH00052: child pid 6191 exit signal Segmentation fault (11)
[Mon Jan 20 22:14:02.343396 2020] [core:notice] [pid 4702] AH00052: child pid 6241 exit signal Segmentation fault (11)
[Mon Jan 20 22:14:02.343886 2020] [core:notice] [pid 4702] AH00052: child pid 6240 exit signal Segmentation fault (11)
[Mon Jan 20 22:14:07.349923 2020] [core:notice] [pid 4702] AH00052: child pid 6212 exit signal Segmentation fault (11)
尝试获取有关该过程的详细信息 return 没有任何结果:
alan:~$ ps -p 6212
PID TTY TIME CMD
如果我刷新页面,第二次(以及所有其他时间)它将 return 正确的数据(为了测试,我让 api 端点简单地输出 "hello world") .
为了解决我试过:
- 正在重新启动 Apache
- 正在清除浏览器缓存
- 以隐身模式发出请求
- 在 Firefox、Safari 和 Chrome
我刚刚更新到 Catalina,但我认为这无关紧要,因为我相信我之前遇到过这个错误,但它会自行消失。
有什么建议吗?谢谢。
阅读 Firefox 中的错误提供了更多线索。 Firefox 的错误说:
Secure Connection Failed: The page you are trying to view cannot be shown because the authenticity of the received data could not be verified
所以出于某种原因存在 SSL 问题。我已经在本地创建了一个用于测试的自签名 SSL 证书(支持通配符子域);它还没有过期,所以我不确定为什么突然出现问题。
解决方案:不要在本地使用 https 并更新我的 .htaccess 文件以仅在实时站点 (mysite.com) 而不是开发站点 (mysite.test) 上强制使用 https:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} mysite.com$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
我还卸载了 Apache 和 OpenSSL,但我不认为这是解决问题的方法。
试试这个:
RewriteCond %{HTTPS} !on
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ ([^\ ]+)
RewriteRule ^ https://%{HTTP_HOST}%2 [L,R=301]
您仍然希望启用 https 重定向,除了显而易见的,如果您没有完整的 https 支持,您的网站排名将会受到影响。