2017-03-07 1 views
1

누군가가 내 설정을 사용하여 실패하고 있음을 알릴 수 있습니다.Nginx - 업스트림 리디렉션이 작동하지 않습니다.

업스트림 리디렉션이 작동하지 않습니다 (설정 문제 여야 함). https에서 http로 리디렉션되는데, 현재 실행 중이 아닙니다. 분명히 보안 트래픽 만 제공하고 http로 리디렉션하지 않는 https 서버가 필요합니다. http://nginx.dev1.whispir.net/tmpl/home.tmpl#!/web_com/View_Workspace?rd=1307

하지만 HTTPS를 통해 상류로 이동하는 데 필요합니다

이것은 내가 내 브라우저 표시 줄에받을 것입니다. 브라우저의 디버그에서

나는 참조 : GET http://nginx.dev1.whispir.net/tmpl/home.tmpl 순 :: ERR_CONNECTION_REFUSED

는 포트 80 타격 내가 작업 HTTPS를 필요로 나는, 포트 80에서 HTTP를 해제 한 이유를 추측 할 수 없습니다 . 누군가 나를 도울 수 있기를 바랍니다.

감사합니다.

이 포트 443

upstream HttpsMainWorker { 
     # Sticky session 
     ip_hash; 

    server 10.1.161.59:8080; 
    server 10.1.161.56:8080; 
} 

upstream HttpsReportWorker { 
     # Sticky session 
     ip_hash; 

    server 10.1.161.64:8080; 
} 

upstream HttpsApiWorker { 
     # Sticky session 
     ip_hash; 

    server 10.1.161.51:8080; 
} 

server { 
    listen    443 ssl; 
    server_name   nginx.dev1.whispir.net; 
    keepalive_timeout 70; 


    ssl on; 
    ssl_certificate   /etc/nginx/certs/2016/61d2d567aece769c.crt; 
    ssl_certificate_key  /etc/nginx/certs/2016/wildcard.dev1.whispir.netclear.pem; 
    ssl_session_timeout  5m; 

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; 
    ssl_prefer_server_ciphers on; 

    access_log   /var/log/nginx/app17web/access.log main; 
    error_log   /var/log/nginx/app17web/error.log debug; 

    root    /data/htdocs/app17web.dev1.whispir.net; 
    index index.jsp; 

    rewrite_log on; 
    location ~* \.(?:ico|css|js|gif|jpe?g|png|pdf)$ { 
    expires 1d; 
    add_header Pragma public; 
    add_header Cache-Control "public"; 
    } 

    error_page 401  /401.html; 
    error_page 403  /403.html; 
    error_page 500 502 /500.html; 
    error_page 503  /503.html; 
    error_page 400 404  /404.html; 
    location = /404.html { 
     internal; 
    } 

    error_page 500 502 503 /50x.html; 
     location = /50x.html { 
      root html; 
     } 

    location /{ 
    try_files $uri @backend; 
    } 



location @backend { 
    proxy_pass http://HttpsMainWorker; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    } 

    location ~ \.jsp$ { 
     proxy_pass      http://HttpsMainWorker; 
     proxy_next_upstream    error timeout invalid_header http_500; 
     proxy_connect_timeout 5s; 

    } 


    location /ivr/ivrRequest.ivr { 
     proxy_pass      http://HttpsMainWorker; 
     proxy_next_upstream    error timeout invalid_header http_500; 
     proxy_connect_timeout 5s; 

    } 

    location /app/cfu/* { 
     proxy_pass      http://HttpsMainWorker; 
     proxy_next_upstream    error timeout invalid_header http_500; 
     proxy_connect_timeout 5s; 

    } 

    location /tmpl/* { 
     proxy_pass      http://HttpsMainWorker; 
     proxy_next_upstream    error timeout invalid_header http_500; 
     proxy_connect_timeout 5s; 

    } 

답변

0

(포트 8080에서 실행) 대부분의 경우 업스트림 응용 프로그램 리디렉션을 발급되는 내 현재 설정입니다. 리디렉션에서 https을 사용하도록 구성해야하거나 프런트 엔드 연결이 https 이상으로 도착했는지 여부를 알려야합니다.

구성에 X-Forwarded-Proto 헤더가 삽입되며 locations 중 하나만 삽입됩니다.

proxy_set_header 지시문 외측 블록에서 상속, 경우에만 다른 proxy_set_header 지시문은 location 설정되지 않는다.

그래서, server 블록 범위로 proxy_set_header 지침의 모든을 영향을받는 각 location 블록에 proxy_set_header X-Forwarded-Proto $scheme; 문을 추가하거나 이동 중. 예를 들어

:

proxy_set_header Host $host; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_set_header X-Forwarded-Proto $scheme; 

location @backend { 
    proxy_pass http://HttpsMainWorker; 
} 
location ~ \.jsp$ { 
    proxy_pass      http://HttpsMainWorker; 
    proxy_next_upstream    error timeout invalid_header http_500; 
    proxy_connect_timeout 5s; 
} 
location /ivr/ivrRequest.ivr { 
    proxy_pass      http://HttpsMainWorker; 
    proxy_next_upstream    error timeout invalid_header http_500; 
    proxy_connect_timeout 5s; 
} 
location /app/cfu/* { 
    proxy_pass      http://HttpsMainWorker; 
    proxy_next_upstream    error timeout invalid_header http_500; 
    proxy_connect_timeout 5s; 
} 
location /tmpl/* { 
    proxy_pass      http://HttpsMainWorker; 
    proxy_next_upstream    error timeout invalid_header http_500; 
    proxy_connect_timeout 5s; 
} 

은 자세한 내용은 this document를 참조하십시오.

+0

안녕 리차드, 빠른 응답을 주셔서 감사합니다, 그것은 매력처럼 작동, 정말 고마워. 큰 감사를 드린다. – glfab

관련 문제