Nginx 설정 은 CORS 를 실현 하여 도 메 인 을 뛰 어 넘 습 니 다.

2037 단어 nginx
개발 할 때 우 리 는 크로스 오 버 문 제 를 자주 겪 습 니 다. 우리 의 일반적인 해결 방안 은 CORS 나 JSONP 를 사용 하여 해결 하 는 것 입 니 다. 그러나 더욱 자주 사용 하 는 해결 방안 은 바로 CORS 입 니 다. JSONP 는 GET 요청 만 지원 하기 때문에 CORS 에 관 한 지식 은 완 일 봉 의 크로스 오 버 자원 공유 CORS 를 참고 하여 이 글 을 상세 하 게 해석 할 수 있 습 니 다.
브 라 우 저 콘 솔 에 크로스 도 메 인 관련 오류 가 발생 하면 백 엔 드 에서 크로스 도 메 인 을 허용 하지 않 기 때문에 백 엔 드 서버 가 코드 차원 에서 설정 해 야 합 니 다.물론 백 엔 드 에서 코드 를 바 꾸 고 싶 지 않 을 때 도 있 습 니 다. 이 럴 때 저 희 는 프 록 시 nginx 에서 직접 관련 설정 을 할 수 있 습 니 다.
예 를 들 어 우 리 는 / api / v1 의 관련 인터페이스 가 크로스 필드 를 지원 하도록 허용 해 야 합 니 다. 우 리 는 nginx 설정 을 이렇게 작성 할 수 있 습 니 다.
location ^~ /api/v1 {

	add_header 'Access-Control-Allow-Origin' "$http_origin"; 
	add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS'; 
	add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type    '; 
	add_header 'Access-Control-Allow-Credentials' 'true'; 
	if ($request_method = 'OPTIONS') { 
		add_header 'Access-Control-Allow-Origin' "$http_origin"; 
		add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS'; 
		add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type    '; 
		add_header 'Access-Control-Allow-Credentials' 'true'; 
		add_header 'Access-Control-Max-Age' 1728000; # 20   
		add_header 'Content-Type' 'text/html charset=UTF-8'; 
		add_header 'Content-Length' 0; 
		return 200; 
	} 
    #               ,                
	proxy_pass http://127.0.0.1:8085; 
	proxy_set_header Host $host; 
	proxy_redirect off; 
	proxy_set_header X-Real-IP $remote_addr; 
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
	proxy_connect_timeout 60; 
	proxy_read_timeout 60; 
	proxy_send_timeout 60; 

}
http://www.itzh.org/2017/12/25/CORS_config_for_nginx/

좋은 웹페이지 즐겨찾기