Question
도메인 간 리소스 공유에 대한 이전 글에서 도메인 교차 시 쿠키를 보내려면 access-control-allow-origin을 *로 설정할 수 없으며 명확하게 지정해야 한다고 언급했습니다. . 요청한 웹페이지와 일치하는 도메인 이름입니다. 저는 이 프로젝트를 개발하면서 다른 사람들과 협업할 때 이런 문제에 직면했습니다.
솔루션
일반적으로 백엔드와 cors 교차 도메인 리소스 공유를 사용하여 액세스할 도메인 이름으로 access-control-allow-origin을 설정합니다. 및 일부 탐색 장치가 지원되지 않습니다.
파트너의 백엔드와의 협력을 기반으로 nginx 방향 프록시를 사용하여 브라우저의 동일 출처 정책을 충족하여 도메인 간 구현을 달성합니다.
구현 방법
역방향 프록시 개념
reverse 프록시(역방향 프록시) 방식은 프록시 서버를 사용하여 인터넷에서 연결 요청을 수락한 다음 해당 요청을 내부 네트워크의 서버로 전달하고 서버에서 얻은 결과를 연결을 요청하는 클라이언트로 반환하는 것을 말합니다. 인터넷에서는 프록시 서버가 외부 세계에 서버로 나타납니다. 역방향 프록시 서버는 클라이언트에 원래 서버로 나타나므로 클라이언트는 특별한 설정을 지정할 필요가 없습니다. 클라이언트는 역방향 프록시의 네임스페이스(네임스페이스)에 있는 콘텐츠에 일반 요청을 보내고, 역방향 프록시는 요청을 전달할 위치(원래 서버)를 결정하고 획득한 콘텐츠를 다음과 같이 클라이언트에 반환합니다. 고유한 콘텐츠를 제공합니다.
교차 도메인을 달성하기 위해 nginx 역방향 프록시를 사용하는 단계
패키지를 다운로드하여 nginx 환경을 구축하세요
nginx 구성 파일을 수정하고, nginx.conf 파일을 찾아 관련 구성을 수정하세요
http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 8000; #监听8000端口,可以改成其他端口 server_name localhost; # 当前服务的域名 location /wili/api/ { proxy_pass http://chick.platform.deva.wili.us/api/; #添加访问路径录为/will/api的代理配置 proxy_http_version 1.1; } location / { proxy_pass http://localhost:8001; proxy_http_version 1.1; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
구성 설명:
nginx가 localhost의 8000 포트를 수신하도록 구성 정보에서 볼 수 있습니다. 웹 사이트 a와 웹 사이트 b는 localhost의 8000 포트를 통해 액세스됩니다.
"will/api"로 시작하는 주소가 처리를 위해 ""로 전달되도록 "/will/api"에 대한 액세스를 특별히 구성했습니다.
액세스 주소 수정
이제 nginx를 구성했으므로 모든 액세스는 웹 사이트의 원래 주소(웹 사이트 localhost:8001, b 웹 사이트) 대신 nginx를 거쳐야 합니다. 따라서 웹사이트 a의 요청 인터페이스를 수정하고 교체해야 합니다. 다음으로 nginx를 시작하고 구성된 8000
한 가지 주의할 점은 nginx 시작이 포트와 충돌하여 시작이 실패할 수 있다는 점입니다. 작업 관리자에서 시작 성공 여부를 확인할 수 있습니다.
위 내용은 Nginx 역방향 프록시를 사용하여 도메인 간 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!