[javascript] 오류의 원인은 무엇입니까? getaddrinfo EAI_AGAIN?

내 서버가 오늘 이것을 던졌습니다. 이는 전에 본 적이없는 Node.js 오류입니다.

Error: getaddrinfo EAI_AGAIN my-store.myshopify.com:443
    at Object.exports._errnoException (util.js:870:11)
    at errnoException (dns.js:32:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:26)

이것이 오늘날 Shopify 및 기타 많은 서비스에 영향을 미친 DynDns DDOS 공격과 관련이 있는지 궁금합니다. 여기에 대한 기사가 있습니다.

내 주요 질문은 무엇을 dns.js합니까? 노드의 어느 부분에 속합니까? 다른 도메인에서이 오류를 어떻게 재현 할 수 있습니까?



답변

Firebase Cloud Functions에서이 오류가 발생하는 경우 이는 무료 등급의 제한 때문입니다 ( 발신 네트워킹은 Google 서비스에만 허용됨 ).

작동 하려면 Flame 또는 Blaze 요금제로 업그레이드하세요 .

여기에 이미지 설명 입력


답변

EAI_AGAIN은 DNS 조회 시간 초과 오류이며 네트워크 연결 오류 또는 프록시 관련 오류를 의미합니다.

내 주요 질문은 dns.js가 무엇을 하는가?

  • dns.js는 노드가 도메인의 IP 주소를 얻기 위해 존재합니다 (간략히).

추가 정보 :
http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html


답변

이것은 호스트 파일 설정과 관련된 문제입니다. Ububtu에서 hots 파일에 다음 행을 추가하십시오. / etc / hosts

127.0.0.1   localhost

Windows에서 : c : \ windows \ System32 \ drivers \ etc \ hosts

127.0.0.1   localhost


답변

OP의 오류는 호스트 (my-store.myshopify.com )를 . 내가 발생한 오류는 도메인이 지정되지 않았다는 점을 제외하고 모든 측면에서 동일합니다.

내 솔루션은 “오류 : getaddrinfo EAI_AGAIN”이라는 제목으로 여기에 그려진 다른 사용자에게 도움이 될 수 있습니다.

코드가 원래 개발 된 곳과 다른 VM에서 NodeJs 및 VueJs 앱을 제공하려고 할 때 오류가 발생했습니다.

vue.config.js읽은 파일 :

 module.exports = {
   devServer: {
     host: 'tstvm01',
     port: 3030,
   },
 };

원래 머신에서 제공되는 경우 시작 출력은 다음과 같습니다.

App running at:
- Local:   http://tstvm01:3030/ 
- Network: http://tstvm01:3030/

VM에서 동일한 설정을 사용하면 tstvm07OP에서 설명하는 것과 매우 유사한 오류가 발생했습니다.

 INFO  Starting development server...
 10% building modules 1/1 modules 0 activeevents.js:183
      throw er; // Unhandled 'error' event
      ^

Error: getaddrinfo EAI_AGAIN
    at Object._errnoException (util.js:1022:11)
    at errnoException (dns.js:55:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)

아직 명확하지 않은 경우 vue.config.js읽기로 변경 …

 module.exports = {
   devServer: {
     host: 'tstvm07',
     port: 3030,
   },
 };

… 문제를 해결했습니다.


답변

@xerq가 올바르게 지적했습니다. 여기에 더 많은 참조가 있습니다.
http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html

같은 오류가 발생했습니다. Windows OS에서이 위치에있는 “호스트”파일을 업데이트하여 문제를 해결했습니다.

C : \ Windows \ System32 \ drivers \ etc

도움이 되었기를 바랍니다 !!


답변

도커 컨테이너 내부에서 작동하는 GraphQL API 응용 프로그램을 사소한 업데이트 한 후이 오류 (다른 스택 추적)가 발생하기 시작했습니다. 어떤 이유로 든 컨테이너는 API에서 사용중인 백엔드 서비스를 해결하는 데 어려움을 겪었습니다.

내가 구축하고 있던 도커 기본 이미지 (노드 : 13- 알파인, 우연히)에 변경 사항이 있는지 확인한 후 재부팅하는 가장 오래된 컴퓨터 과학 트릭을 시도하기로 결정했습니다 … 나는 도커를 중지하고 시작했습니다. 컨테이너와 모든 것이 정상으로 돌아 왔습니다.

분명히 이것은 근본적인 문제에 대한 의미있는 해결책이 아닙니다. 너무 깊이 들어 가지 않고 문제를 해결했기 때문에 나는 이것을 게시하는 것입니다.


답변

예를 들어 알파인 컨테이너 내부에서 실행할 때와 같이 도커 컨테이너 내 에서이 오류가 발생 npm install하면 컨테이너가 시작된 이후 네트워크가 변경된 것이 원인 일 수 있습니다.

이를 해결하려면 컨테이너를 중지하고 다시 시작하십시오.

docker-compose down
docker-compose up

출처 : https://github.com/moby/moby/issues/32106#issuecomment-578725551