인증서 2개가 포함된 도메인 2개, 공용 IP 1개, nginx 서버 1개

인증서 2개가 포함된 도메인 2개, 공용 IP 1개, nginx 서버 1개

왜 이런 일이 발생하는지 알 수 없기 때문에 나를 도와주실 수 있기를 바랍니다. 다음과 같은 2개의 도메인이 있습니다.

  • alpha.com
  • beta.com

둘 다 동일한 서버 IP를 가리키고 있습니다.

  • xxxxx

이 서버에는 단일 nginx가 실행되고 있습니다. 내 방화벽에는 이 서버의 내부 IP로 전달되는 포트 80과 443이 있습니다.

  • 192.168.1.2

두 도메인 모두 자체 인증서를 가지고 있습니다.

두 도메인 모두에 대한 서버 구성은 다음과 같습니다.

문제: 여기서 문제는 내가 alpha.com에 갈 때 서버가 나를 http.s://alpha.com으로 리디렉션하고 alpha.com의 콘텐츠를 로드한다는 것입니다. 지금까지는 훌륭합니다. 브라우저에서 새 탭을 열고 beta.com을 입력하면 브라우저의 URL이 http.s://beta.com으로 변경되지만 alpha.com의 콘텐츠가 로드됩니다.

브라우저에 입력된 URL을 기반으로 각 도메인에 대한 올바른 디렉토리를 서버에 전달하고 https를 계속 유지하도록 nginx에 어떻게 지시합니까?

감사해요.

답변1

두 가상 호스트 모두 루프백 주소에서 동일한 포트를 가리키고 있습니다.

에서 무엇을 듣고 있나요 http://127.0.0.1:2368?

두 개의 서로 다른 포트에서 수신 대기하고 각 nginx 가상 호스트를 고유한 포트로 프록시하도록 해당 서비스를 구성해야 합니다.

답변2

보세요이것Digital Ocean에 관한 이 게시물입니다.

통해 가능합니다서버 이름 식별(SNI). 이는 SSL에 비교적 최근에 추가된 것입니다. 이전에는 두 개 이상의 서로 다른 도메인 이름이 https 액세스에 동일한 IP 주소를 사용하는 것이 불가능했습니다.

답변3

실제로 나는 내 자신의 실수를 발견했습니다. 도메인 중 하나에서는 유령 블로그 플랫폼이 실행되고 다른 도메인에서는 WordPress가 실행되고 있었습니다. wordpress 사이트의 nginx 구성 파일에서 다음 코드를 제거하여 문제를 해결했습니다.

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HOST $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:2368;

참고로 @MyNameIsBoring이 언급한 포트 2368은 ghost가 사용하는 포트이므로 80 및 443에 서버로 역방향 프록시를 설정했습니다. 분명히 그것은 wordpress에서는 작동하지 않습니다. 코드의 해당 부분을 제거하면 모두 다음과 같이 작동하기 시작합니다. 그들은해야.

관련 정보