2017-12-23 15 views
0

nginx에서 자체 서명 된 인증서를 사용했습니다. UI (React js)의 요청은 백엔드에서 발생하지만 NGINX는 헤더를 백엔드로 전달하지 않습니다. 내 nginx를 구성 파일은 다음과 같다 :Nginx가 백엔드 (노드 js)를 치기 위해 사용자 정의 헤더를 전달하지 않습니다.

server { 
     listen 443 ssl; 
     ssl on; 
     server_name SERVER_NAME; 
     ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; 
     ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; 
     #add_header Strict-Transport-Security max-age=31536000; 
     add_header Cache-Control no-cache; 
     location/{ 
       root PATH_TO_FRONTEND; 
       try_files $uri $uri/ /index.html$is_args$args; 
       proxy_http_version 1.1; 
       proxy_set_header Upgrade $http_upgrade; 
       proxy_set_header Connection 'upgrade'; 
       proxy_set_header Host $host; 
       proxy_cache_bypass $http_upgrade; 
     } 
     location ~* api/(.*) { 
       proxy_pass http://127.0.0.1:8080$request_uri; // BACKEND 
       proxy_redirect off; 
       proxy_set_header Host $host; 
       add_header Cache-Control no-cache; 
     } } 

내가 브라우저에서 다음과 같은 오류가 발생합니다 : 스크립트를 가져올 때

SSL 인증서 오류가 발생했습니다.

sw.js 자원로드 할 수 없습니다 : 순 :: ERR_INSECURE_RESPONSE을

로그인 : (약속의) 1 catch되지 않은 예외 : DOMException 다음 스크립트를 가져올 때 SSL 인증서 오류가 발생하십시오 ServiceWorker을 등록하지 못했습니다.

+0

"NGINX가 헤더를 백엔드로 전달하지 않음"또는 브라우저 오류를 디버그하려고합니까? 자체 서명 인증서를 사용하는 경우 브라우저에서 허용하지 않는 것이 당연합니다. – kshikama

+0

@kshikama 왜 NGINX가 헤더를 백엔드로 전달하지 않는지 혼란 스럽습니다. –

답변

0

시도 위치 블록에

proxy_pass_header Server; 

를 추가. 그것은 효과적으로 보낸 사람의 헤더를 통해 백엔드로 전달한다고 말합니다.

+0

여전히 백엔드에 헤더를 전달하지 않습니다. @kshikama –

+0

흠. 다른 답변을 얻지 못하면 SSL (포트 80으로 전환)을 끄고 캐시 제어 no-cache를 주석 처리하고 이것이 영향을 미치는지 확인하는 것이 좋습니다. – kshikama

+0

내 요구 사항 중 하나에 대해 SSL을 원합니다. 어쨌든, @kshikama에게 감사드립니다. –