Heroku H10-App 충돌 오류의 원인과 해결 방법

프로그래밍은 씁쓸합니다.
이는 매우 지루하고 많은 경우 개발자가 다른 것에 대한 열의가 거의 없어 매우 좌절하게 만들 수 있습니다keypress.

하지만 개발자들은 코딩을 하면서 늘 한가로운 시간을 보내고 있으며, 모든 코드가 오류 없이 성공적으로 실행되면 자부심과 기쁨으로 가득 차 있습니다.

아무도 코딩하는 동안 좌절하기를 원하지 않으므로 아무도 코드에 버그를 원하지 않습니다.


개발자는 처음 시도할 때 제대로("코드 측면에서") 이해하지 못하는 경우가 많습니다. 결과적으로 소프트웨어 개발 주기에는 디버깅, 리팩토링, 업그레이드 및 기타 여러 개선 작업이 포함됩니다.
또한 개발자는 코드의 버그를 처리해야 하는 경우가 많다는 것을 알고 있습니다. 따라서 디버깅은 개발자의 레퍼토리에서 매우 귀중한 기술입니다. 디버깅에 성공하려면 오류 메시지를 잘 이해해야 합니다.

오류 코드 또는 메시지는 컴퓨터가 코드에 버그가 있음을 알려주는 방법이며 때로는 버그가 어디에 있는지 알려줍니다.

역설은 오류 코드입니다. 매우 유용하지만 평범한 영어가 아니며 매우 혼란스럽고 모호할 수 있습니다.

다음은 Heroku에서 충돌한 앱의 오류 코드입니다.

2019-10-11T11:27:28.019054+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=realtylabapp.herokuapp.com request_id=74165d9f-db2a-46bd-ab9c-1a01403bd00f fwd="129.205.113.108" dyno= connect= service= status=503 bytes= protocol=https
2019-10-11T11:27:29.919409+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=realtylabapp.herokuapp.com request_id=fa48efa2-4ddf-41e6-a633-a62cb02314bd fwd="129.205.113.108" dyno= connect= service= status=503 bytes= protocol=https


Heroku는 고유한 영숫자 오류 코드 콤보를 사용하여 코드에서 발견된 오류 종류를 개발자에게 전달합니다.

이 영숫자 오류 코드의 범위는 다음과 같습니다.
  • H10 ~ H99
  • R10 ~ R99
  • L10 ~ L15

  • 자세한 목록은 여기에서 확인하세요: Complete Heroku Error Codes

    이 문서는 응용 프로그램이 Heroku에서 충돌할 때 발생하는 오류 코드Heroku H10-App crashed에 중점을 둡니다. 이 정도입니다. 그것은 우리 앱이 충돌한 이유에 대해 우리에게 도움이 되지 않으며 그것이 이 기사가 나오는 곳입니다. 아래는 이 오류의 몇 가지 원인이며 그 중 일부는 당신을 크게 놀라게 할 것이라고 장담합니다!
  • Procfile의 버그
    저에게는 매우 흥미로운 발견입니다. Procfile의 버그로 인해 앱이 다운될 수 있습니다. Procfile이 잘못된 서버 파일을 가리키는 경우. 예를 들어 서버가 server.js에 있고 Procfile이 app.js를 가리키는 경우 앱이 확실히 중단되고 Heroku는 H10-App 충돌 오류 코드 메시지로 인사를 보냅니다.
    둘째, 버그가 있는 Procfile도 잘못된 간격의 형태로 올 수 있습니다. 예: 잘못된: web : node index.js
    올바른 웹: node index.js
  • PORT를 Heroku 환경 변수로 설정
    이것은 확실히 당신의 앱을 중단시킬 것입니다. Heroku는 process.env.PORT를 통해 액세스할 수 있는 포트를 자동으로 설정합니다. 포트를 직접 설정하면 앱이 다운됩니다. 놀랍게도 명령heroku config은 미리 설정된 Heroku 포트를 표시하지 않으므로 다른 포트를 환경 변수로 설정하고 싶은 유혹을 느낄 수 있습니다.
    미리 설정된 모든 Heroku 환경 변수를 보려면 heroku run printenv 명령을 사용하십시오.
  • Heroku가 이미 내부적으로 포트를 설정했기 때문에 포트를 설정하는 동안 필수 환경 변수가 누락되면 이 오류가 발생하고 필요한 환경 변수(예: 데이터베이스)를 설정하지 않으면 Heroku가 이 오류를 표시합니다.
  • 필수 스크립트 누락
    이 오류는 start script 설정을 잊은 경우 Node.js 환경에서 발생합니다. Heroku는 이 스크립트를 사용하여 앱을 시작하므로 누락된 경우 오류 코드 메시지H10-App crashed가 표시됩니다.

  • 이는 start script에서 package.json를 설정하여 해결할 수 있습니다. 예를 들어

    "scripts": {
       "start": "node index.js"
    }
    
    


    마지막 생각들
    위의 방법으로 문제가 해결되지 않으면 모든 패키지를 업데이트하여 마지막 시도를 할 수 있습니다. 이것이 도움이 되지 않고 Node.js 환경에 있는 경우 마지막 수단은 node version 파일의 엔진 섹션에서 package.json를 설정하는 것입니다.

    {
     "name": "myapp",
     "description": "a really cool app",
     "version": "1.0.0",
     "engines": {
       "node": "12.11.1"
       }
    }
    


    생각할 수 없는
    마지막으로, 버그가 모든 솔루션을 더럽히고 이때까지 지푸라기라도 잡고 있다면; 나는 당신을 heroku restart의 유능한 손에 맡깁니다.

    아래 의견에서 이 오류의 다른 원인을 경험한 경우 알려주십시오.

    좋은 웹페이지 즐겨찾기