잘못된 호스트 헤더(잘못된 호스트 헤더) 서버 도메인 이름 액세스 오류를 해결하기 위해 전체 네트워크에 여러 가지 방법이 있습니다.

1. 오류 재현


환경 설정시 프록시 서버로 vue-cli사용되지만 접속시 다음과 같이 표시됩니다 .nginxInvalid Host header

2. 분석 오류


그것이 무엇인지 알고, 왜 그런지 알고, 문제를 해결하기 전에 Invalid Host header그것이 무엇인지 알아내야 합니다.

ChatGPT현재 정규화 중이므로 다음 그림과 같이 이를 사용하여 그것이 무엇인지 ChatGPT대답 할 수 있습니다.Invalid Host header

여기에 이미지 설명 삽입

"잘못된 호스트 헤더" 오류는 일반적으로 웹 애플리케이션에서 올바르지 않거나 예상치 못한 호스트 헤더 값으로 서버에 요청이 있을 때 발생합니다.

호스트 헤더는 HTTP 요청의 필수 필드이며 클라이언트가 연결하려는 서버의 호스트 이름을 지정합니다. 클라이언트가 서버에 요청을 보내면 서버는 호스트 헤더 값이 서버의 호스트 이름과 일치하는지 확인합니다. 호스트 헤더 값이 서버 호스트 이름과 일치하지 않으면 서버에서 "잘못된 호스트 헤더" 오류 메시지와 함께 요청을 거부할 수 있습니다.

이 오류는 다음과 같은 다양한 이유로 발생할 수 있습니다.

  • 클라이언트가 잘못된 서버로 요청을 보내고 있습니다.
  • 클라이언트가 호스트 이름 대신 IP 주소로 요청을 보내고 있습니다.

  • 클라이언트가 잘못된 호스트 헤더 값 으로 요청을 전달하는 프록시 또는 로드 밸런서를 사용하고 있습니다 .
  • 서버는 특정 호스트 헤더 값이 있는 요청만 수락하도록 구성되어 있고 클라이언트는 일치하는 값을 보내지 않습니다.


이 오류를 해결하려면 서버 구성을 확인하거나 클라이언트가 올바른 호스트 헤더 값을 사용하여 올바른 서버에 요청을 보내고 있는지 확인해야 할 수 있습니다. 호스트 헤더 값을 수정할 수 있는 요청과 관련된 프록시 또는 로드 밸런서가 있는지 확인해야 할 수도 있습니다.

하지만 아쉽게도 ChatGPT영어로 답장을 보내면 저희 부서에서 다음과 같이 중국어로 번역하는 편이 낫습니다.

잘못되었거나 예기치 않은 호스트 헤더 값을 사용하여 서버에 대한 요청이 있을 때 Web응용 프로그램에서 일반적으로 无效的主机头오류가 발생합니다.

호스트 헤더는 HTTP클라이언트가 연결하는 서버의 호스트 이름을 지정하는 요청의 필수 필드입니다. 클라이언트가 서버에 요청을 보낼 때 서버는 Host 헤더 값이 서버의 호스트 이름과 일치하는지 확인합니다. 호스트 헤더 값이 서버 호스트 이름과 일치하지 않으면 서버에서 主机标头无效오류 메시지와 함께 요청을 거부할 수 있습니다.

이 오류의 원인은 다음과 같습니다.

  • 클라이언트가 잘못된 서버로 요청을 보내고 있습니다.
  • 클라이언트가 IP호스트 이름 대신 주소로 요청을 보내고 있습니다.
  • 클라이언트가 잘못된 호스트 헤더 값으로 프록시 또는 로드 밸런서 전달을 사용하고 있습니다.
  • 서버는 특정 호스트 헤더 값이 있는 요청만 수락하도록 구성되었으며 클라이언트는 일치하는 값을 보내지 않았습니다.


이 오류를 해결하려면 서버 구성을 확인하거나 클라이언트가 올바른 호스트 헤더 값을 사용하여 올바른 서버에 요청을 보내고 있는지 확인해야 할 수 있습니다. 호스트 헤더 값을 수정할 수 있는 요청과 관련된 프록시 또는 로드 밸런서를 확인할 수도 있습니다.

즉, Invalid Host header无效的主机头, 이 오류의 원인도 위에서 언급했습니다.

그러나 위에서 언급한 이유는 내 문제의 원인이 아니며 내 스스로 오류를 해결할 수 밖에 없습니다.

webpack-dev-server거듭된 조사 결과 새 버전은 보안상의 이유로 기본적으로 체크되어 있으며 hostname, hostname구성에 없으면 접근이 불가능한 것으로 알려졌다 .

이 문제를 해결하는 방법에는 두 가지가 있습니다.

  1. host스킵 체크 설정

  2. host호스트 주소로 설정

3. 버그 수정

3.1 호스트 확인을 건너뛰는 두 가지 방법이 있습니다.
  1. devServer필드에 추가하고 확인을 disableHostCheck: true건너뛸 수 있습니다 host.

devServer필드는 다음 그림과 같이 build디렉토리 아래의 파일에 있습니다.webpack.dev.conf.js

여기에 이미지 설명 삽입

  1. 아래 그림과 같이 : 파일 에서 명령을 package.json수정합니다 .scriptswebpack-dev-server --disableHostCheck=true

여기에 이미지 설명 삽입

3.2 호스트를 호스트 주소로 설정합니다. 다음과 같은 두 가지 방법이 있습니다.
  1. config디렉토리 index.js파일을 수정하십시오 host.

이 기본값은 이며 예를 들어 다음 그림과 같이 localhost수정할 수 있습니다 .xxx.comsuperjson.com

여기에 이미지 설명 삽입

  1. package.jsonscript다음 문을 추가합니다 .
 webpack-dev-server --host=xxx.com

또는

--public=xxx.com

위의 오류에 대한 해결 방법으로 오류를 해결할 수 없는 경우 다음 방법을 참조하여 오류를 해결할 수 있습니다.

4. 이 오류를 해결하는 다른 방법

위에서 언급했듯이 Invalid Host header일반적으로 응용 프로그램에서 발생하는 일반적인 오류 메시지입니다 Web.

HTTP요청의 Host header(호스트 헤더)와 실제 요청된 호스트 간에 불일치가 있음을 나타냅니다 . 이는 프록시 서버 또는 로드 밸런서와 같은 네트워크 장치로 인해 발생할 수 있습니다.

이 오류를 해결하는 다른 방법은 다음과 같습니다.

  1. 애플리케이션 구성 파일 Web의 호스트 이름이 올바른지 확인하고 실제 요청 호스트 이름과 일치하는지 확인하십시오.

  2. 애플리케이션 구성 파일 Web에 신뢰할 수 있는 호스트 이름 목록을 추가하면 목록에 있는 승인된 호스트 이름만 애플리케이션에 액세스할 수 있습니다.

  3. 프록시 서버 또는 로드 밸런서의 구성을 확인하고 호스트 헤더를 올바르게 전달하고 있는지 확인하십시오.

  4. 암호화를 사용하는 경우 인증서에 올바른 호스트 이름이 포함되어 있고 인증서가 제대로 설치되었는지 SSL확인하십시오 .SSL

  5. Web응용 프로그램 에서 확인을 비활성화하십시오 Host header. 공격자가 가짜 호스트 헤더를 사용하여 특정 보안 조치를 우회할 수 있으므로 보안 위험이 발생할 수 있습니다.

  6. Web애플리케이션의 코드를 업데이트합니다 . 경우에 따라 Web애플리케이션 코드로 인해 오류가 발생할 수 있습니다. 애플리케이션 코드가 요청 헤더를 올바르게 처리하는지 확인하십시오. 애플리케이션 설명서를 보거나 개발자에게 문의하여 자세한 내용을 알아볼 수 있습니다.

  7. 신뢰 프록시 헤더를 활성화합니다. 사용 중인 서버 소프트웨어가 Trust Proxy 헤더를 지원하는 경우 이 옵션을 활성화하여 문제를 해결할 수 있습니다. 이렇게 하면 프록시 서버에서 요청을 받을 때 프록시 헤더를 신뢰하도록 서버에 알립니다.

결론적으로 Invalid Host header오류는 일반적으로 구성 문제 또는 잘못된 네트워크 장치 설정으로 인해 발생합니다.

애플리케이션 구성을 확인하고 호스트 이름이 올바른지 확인하여 이 문제를 해결할 수 있습니다.

어떤 해결책을 선택하든 주의하십시오. 변경 사항을 이해하고 테스트하기 전에 모든 구성 파일과 코드를 백업하십시오.

Supongo que te gusta

Origin blog.csdn.net/lvoelife/article/details/129203942
Recomendado
Clasificación