>  기사  >  운영 및 유지보수  >  Nginx가 도메인 간 쿠키를 해결하는 방법

Nginx가 도메인 간 쿠키를 해결하는 방법

(*-*)浩
(*-*)浩원래의
2019-07-15 13:28:377684검색

프로젝트 모듈이 점점 더 많아지면서 이제 많은 모듈이 독립적으로 배포됩니다. 모듈 간의 통신은 때때로 쿠키를 통해 수행될 수 있습니다. 예를 들어, 포털과 애플리케이션은 각각 다른 시스템이나 웹 컨테이너에 배포됩니다. 사용자가 로그인하면 쿠키가 브라우저 클라이언트에 기록되고(사용자 컨텍스트 정보 기록) 애플리케이션은 쿠키를 얻으려고 합니다. 쿠키 크로스 도메인 문제를 해결합니다.

Nginx가 도메인 간 쿠키를 해결하는 방법

쿠키 도메인 간 문제에 대한 솔루션 nginx 역방향 프록시

역방향 프록시 개념 # 🎜🎜#

역방향 프록시 방식은 프록시 서버를 사용하여 인터넷상의 연결 요청을 수락한 다음 해당 요청을 내부 네트워크의 서버로 전달하고 서버에서 얻은 결과를 클라이언트로 반환하는 것을 말합니다. 인터넷에서 연결을 요청하면 프록시 서버는 외부 세계에 서버로 나타납니다.

역방향 프록시 서버는 클라이언트에게 원래 서버처럼 보이므로 클라이언트는 특별한 설정을 할 필요가 없습니다. 클라이언트는 역방향 프록시의 네임스페이스(네임스페이스)에 있는 콘텐츠에 일반 요청을 보내고, 역방향 프록시는 요청을 전달할 위치(원래 서버)를 결정하고 획득한 콘텐츠를 다음과 같이 클라이언트에 반환합니다. 자신만의 오리지널 콘텐츠를 제공합니다.

시나리오 시뮬레이션

web1과 web2라는 두 프로젝트가 동일한 시스템의 서로 다른 Tomcat에 배포되어 web1 프로젝트의 인덱스를 요청합니다. html, 다음과 같습니다:

Nginx가 도메인 간 쿠키를 해결하는 방법

그런 다음 링크를 클릭하여 web2 프로젝트의 index.jsp를 요청하면 내용은 다음과 같습니다. #🎜🎜 #

Nginx가 도메인 간 쿠키를 해결하는 방법 nginx 구성을 다시 살펴보겠습니다.

nginx의 방향 프록시를 사용하여 도메인 간 쿠키 문제 해결 문제는 실제로 브라우저를 "속임수"함으로써 발생합니다. nginx를 통해 우리는 nginx 도메인 아래에 다른 프로젝트의 쿠키를 넣을 수 있고 nginx 역방향 프록시를 통해 다른 프로젝트에서 작성된 쿠키를 얻을 수 있습니다.

사실 위의 시나리오에서 $.cookie("user", "hjzgg", {path: "/web"})의 경로는 " /"이므로 nginx 구성은 다음과 같이 더욱 간단합니다.

location /web1 {
            proxy_pass http://web1;
            proxy_set_header Host  127.0.0.1;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
 
            proxy_set_header Cookie $http_cookie;
            log_subrequest on;
        }
 
        location /web2 {
            proxy_pass http://web2;
            proxy_set_header Host  127.0.0.1;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header Cookie $http_cookie;
            log_subrequest on;
        }

더 많은 Nginx 관련 기술 기사를 보려면

Nginx 사용 튜토리얼

열을 방문하여 알아보세요!

위 내용은 Nginx가 도메인 간 쿠키를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.