programing

Angular/cli 개발 서버 c9.io 를 실행할 때 "잘못된 호스트 헤더"가 표시됨

linuxpc 2023. 6. 5. 23:42
반응형

Angular/cli 개발 서버 c9.io 를 실행할 때 "잘못된 호스트 헤더"가 표시됨

명령: 현재명령:ng serve --host --public $IP:$PORT

내 웹 사이트의 결과:

잘못된 호스트 헤더

--disable-host-check플래그는 Cloud9에서 실행해야 할 경우 잘 작동합니다.

다음 명령을 사용합니다.

ng serve --open --host $IP --port $PORT --disable-host-check

angular.json에서 architect -> serve -> 옵션 아래에 다음을 추가합니다.

"disableHostCheck": true

Github 이슈 페이지에서 답변을 받았습니다.

호스트를 지정해야 합니다.

ng serve --port 8080 --host 123.34.56.78

이것은 나에게 효과가 있습니다.

ngrok http --host-header=rewrite PORT

예를 들어:

ngrok http --host-header=rewrite 4200

문제 보기

에서 다음 합니다.node_modules/webpack-dev-server/lib/Server.js 변경합니다

return true;

를 사용하고 . 그 다음에 실행하세요: cloud9 IDE를 사용합니다.ng serve --port 8080 --host 0.0.0.0이제 잘 작동합니다.

이 경우 호스트 이름을 사용하여 /etc/hosts 파일을 업데이트합니다.

vi /etc/hosts

호스트 이름을 마지막 줄에 추가합니다.

127.0.0.1 myHostName.com

내 서버를 연결하기 위해,

ng serve -o

myHostName.com:4200 에 연결하는 동안 오류가 발생했습니다.

그래서 이렇게 했어요.

ng serve --host 0.0.0.0 --disableHostCheck true

myHostName.com:4200 에 다시 연결합니다. :)

다음을 실행해야 합니다.

ng serve --port 8080 --publicHost 123.34.56.78 // your server ip or host name.

나한테 효과가 있어요.

아래 명령어를 사용하는 것이 나에게 효과가 있습니다.

ng serve --host 0.0.0.0 --port 8080  --public ipAddress

아래 버전의 Angular 및 서버 Amazon에서 테스트되었습니다.

Angular CLI: 6.0.8
Node: 8.11.3
OS: linux x64
Angular: 5.2.8

되어 ng 명령옵변습니다를 합니다. 지금 사용합니다.configurationenv가 있었던 입니다.

 ng serve --configuration=dev  --port 4009 --host 0.0.0.0 --publicHost myhost.com

절대로 용안함을 사용하지 .--disable-host-check를 줄 입니다.이것을 사용하면 Angular가 경고합니다.효과가 있을 수 있지만 심각한 보안 문제입니다.이 플래그를 사용하면 이 메시지가 표시됩니다.

경고: --disable-host-check로 서버를 실행하는 것은 보안 위험입니다.자세한 내용은 https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a 을 참조하십시오.

시간을 내서 읽을 가치가 있는 기사를 읽어보세요.

비트나미 이미지가 있는 AWS EC2 인스턴스에 각도 앱을 배포한 후 동일한 오류가 발생했습니다.그런 다음 아래 명령으로 앱을 실행했는데 잘 작동했습니다.

ng serve --host 0.0.0.0 --port 8080 --disableHostCheck true

Angular CLI의 경우 아래 명령 사용: 6.0.7

ng serve --host 0.0.0.0 --port 8080 --disableHostCheck

사용하지 마십시오.--disable-host-check개발 서버의 플래그입니다!

이는 주요 보안 문제입니다. 일부 악성 코드는 사용자를 대신하여 개발 서버를 요청하고 응답을 받을 수 있습니다.문제는 개발 서버가 응용 프로그램의 소스 코드도 전송하므로 기본적으로 해당 플래그를 사용하면 빌드 중인 응용 프로그램의 코드에 액세스할 수 있습니다.

대신 사용해 보십시오.

ng serve --public-host my.dev.host.com

자세한 내용은 여기를 참조하십시오. 웹 팩-dev-server/middleware 보안 문제

ng serve --host 0.0.0.0 --port 1234 --public-host mydomain.com

이것은 나에게 효과가 있습니다.

@ruwan800의 답변 에도 호스트 검사를 항상 사용하도록 설정하는 것이 가장 좋습니다.이렇게 하면 DNS 리바인딩을 사용한 공격을 방지할 수 있습니다.

https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a

문제를 해결하려면 호스트 IP에 대한 전체 액세스 권한이 있는지 확인합니다.그럴 가능성이 있는 원인입니다.

그래도 문제가 해결되지 않으면 사용자가 위험을 감수하고 각도 구성에서 호스트 검사를 사용하지 않도록 설정할 수 있습니다.하지만 로컬 컴퓨터에 대해서만 이 작업을 수행하는 것이 좋습니다.

. dev disable host check는 true입니다.angular.json.
즉 아래에서 래에아에▁that.architect -> serve -> configurations -> development, 편집기disableHostCheck: true

예:

"architect": {
  //...
  "serve": {
    //...
    "configurations": {
      //...
      "development": {
       //...
       "disableHostCheck": true
      }
    },
  },
  //...
}

이렇게 하면 서버에 배포할 때가 아니라 개발 모드에서 실행할 때만 비활성화됩니다.

아래 명령을 최신 버전의 Angular CLI와 함께 사용하는 것이 좋습니다.

ng serve --host 0.0.0.0 --public-host <workspace>-<username>.c9users.io

이것은 실제로 마테우스 사와 덕분에 유튜브 비디오 댓글 중 하나에서 해결되었습니다.

여기서 확인해 보세요.

패키지에서 호스트를 지정합니다.json은 더 이상 일하지 않습니다 --

가 없는 경우, 단동에상사명용사필없것위유해기념하을다요가는용충다하, 앱아명는일분합니에기작이록도하으로적동반어령래지의할서를 사용하여 합니다.angular-cli, 개발하다

먼저 etc/ 폴더에서 호스트를 찾아야 합니다.

형자cd .. Linux를 사용하여 .ls된 것

호스트 파일이 표시되면 올바른 위치에 있는 것이 아니라 다음을 사용합니다.sudo vi hosts그것을 편집하기 위해

모든 IP 주소 "0.0.0.0 yourworkspace-yourusername.c9users.io " 아래에 줄을 추가합니다(물론 인용문 없음 :-).

또한 패키지에 있습니다.json 변경 "시작": "ng serve -H yourworkspace-yourusername.c9users.io "

앱하고 그런 을다음에애시앱작면하서됩널니터다여미하이동로플더리폴케이션니▁in됩면다▁app▁the▁then하시▁need▁to▁go▁with▁and▁terminal▁you▁just.npm start

방금 확인했고 작동했습니다.

저도 같은 실수를 했어요.퍼블릭 옵션은 아래와 같은 문제를 해결했습니다.

ng serve --host 0.0.0.0 --port 8080 --live-reload-port 8081 --public $C9_HOSTNAME

참조: https://github.com/angular/angular-cli/issues/6070

국기를 사용합니다.예:ng serve --host <workspace>-<username>.c9users.io --public

아래 두 가지 솔루션이 모두 작동합니다.명령줄에서:

ng serve --public --host yourip --port yourportnumber

ng serve --host 0.0.0.0 --port yourport --disableHostCheck true

0.0.0.0을 192.168.1.42와 같은 로컬 IP 주소로 변경하면 작동합니다.

ng serve --host 192.168.1.42

중요한 것은 --public 매개 변수에서 지정한 링크에만 액세스할 수 있다는 것입니다.저의 경우 --public에 IP 주소를 제공하고 해당 IP에 대해 등록한 도메인으로 액세스하려고 합니다.그러나 ng는 --public에 제공된 유일한 호스트에 대해 이 호스트를 바인딩합니다.

이 문제를 해결하기 위해 매개 변수를 하나 더 제공했습니다.disable-host-check전체 명령:ng serve --disable-host-check --host 0.0.0.0 --port 3100 --public x.x.x.x

자세한 내용은 여기를 클릭하십시오.

다음을 사용하여 앱에 액세스하려고 할 때 이 오류가 발생했습니다.localtunnel효용.

@추가에 대한 tarn의 제안(승인된 답변에 대한 코멘트에서)--disableHostCheck true에게ng serve명령이 그 묘기를 부렸습니다.

다음은 문제가 해결되지 않는 사람이 있는 경우의 해결 방법은 다음과 같습니다.

달려.ng eject그것은 그것을 만들 것입니다.webpack.config.js.달려.npm install청하는 바야흐로아래에 추가"disableHostCheck":true로.devServerwebpack.config.js아래와 같이:

"devServer": {
    "historyApiFallback": true,
    "disableHostCheck" : true //<-- add this line
  }

그럼 인package.json파일 변경start아래의 옵션ng이것처럼.

"start": "webpack-dev-server --host 0.0.0.0 --port YOURPORT --public YOURIP:YOURPORT"

이제 각도를 실행합니다.npm start지휘권바로 그거야.

한 번 해보세요.

ng serve --host <private IP> --port <host port> --public-host <public IP>

파일 "node_modules/webpack-dev-server/lib/Server.js"의 행 425를 false에서 true로 변경합니다. 즉,

이전: 거짓 반환;

업데이트됨: true를 반환합니다.

언급URL : https://stackoverflow.com/questions/43677629/invalid-host-header-when-running-angular-cli-development-server-c9-io

반응형