Nginx에서 Proxy_pass를 사용할 때 로그인할 수 없거나 어떤 작업도 수행할 수 없습니다.

Nginx에서 Proxy_pass를 사용할 때 로그인할 수 없거나 어떤 작업도 수행할 수 없습니다.

내 이전 질문에서 여기nginx는 특정 파일 및 하위 디렉터리를 제외한 모든 것을 다른 IP로 확인(지정)합니다.내 화이트라벨 웹사이트를 해결하는 방법에 대해 물었고 해당 페이지의 페이지를 다른 IP로 설정했지만 로드할 일부 하위 폴더와 파일을 내 서버에 보관했습니다. 이를 수행하는 것은 매우 간단하며 최종 솔루션은 다음과 같이 나왔습니다.

location /robots.txt {
   alias {DOCROOT};
}
server_name {SERVERNAME};
location ~ /\.php$ {
    proxy_pass  10.10.10.10 <== whitelabel ip;
    proxy_set_header Host            {SERVERNAME};
    proxy_set_header X-Forwarded-For myaccount.whitelabelsite.com;
    proxy_redirect off;
    proxy_set_header Connection "Keep-Alive";
    proxy_buffering off;
}

따라서 여기서는 내 도메인 아래 화이트라벨 웹사이트의 모든 항목을 로드하지만 호스팅 및 기타 파일에서는 robots.txt를 로드하도록 유지합니다.

지금 문제는 이 방법을 사용하고 있는데 화이트라벨 사이트에서 내 계정에 로그인할 수 없다는 것입니다.

따라서 {SERVERNAME}지시문은 기본적으로 내 도메인 이름 mydomain.com이며 로그인을 시도하면 mydomain.com/aff/panel페이지가 열리지만 오류가 출력되지 않고 페이지가 새로 고쳐지고 아무 작업도 수행되지 않습니다. 누군가가 예약을 하거나 이메일 양식을 보내려는 경우에도 마찬가지입니다. 페이지를 열지만 실제로는 어떤 작업도 수행하지 않습니다.

DNS 리디렉션을 사용할 때는 모든 것이 작동했지만 지금은 그렇지 않습니다. 일부 프록시 정보 또는 화이트라벨과 주고받는 작업 게시/가져오기 헤더가 누락되었나요?

답변1

"whitelabelsite.com"의 백엔드 애플리케이션은 호스트가 올바르게 설정되지 않으면 제대로 작동하지 않을 수 있습니다. Host 헤더를 자신의 호스트 이름 대신 프록시하려는 호스트 이름으로 설정하세요.

proxy_set_header Host myaccount.whitelabelsite.com

정말로 필요합니까 proxy_redirect off? 이로 인해 백엔드 사이트가 리디렉션을 보내지 못할 수 있습니다.

또한 문제와 관련이 없을 가능성이 높지만 X-Forwarded-For클라이언트 IP 주소여야 합니다. nginx에는 IP를 올바르게 추가하는 특수 변수가 있습니다.

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

자세한 내용을 확인하지 않고는 약간의 추측일 뿐입니다. 도움이 되기를 바랍니다.

관련 정보