2016-09-23 2 views
0

저는 정말 nginx에 익숙하며 auth_request에 문제가 있습니다. 다음의 confnginx auth_request 오류 auth 요청 : 예기치 않은 상태 : 302를 클라이언트에 보내는 중

server { 
    listen 80; 
    listen [::]:80; 

    root /var/www/html; 

    index index.php; 
    server_name www.test.com; 

    error_page 401 403 = @error401; 

    location @error401 { 
     return 302 http://login.test.com; 
    } 

    auth_request /auth; 

    location = /auth { 
     internal; 
     proxy_pass http://auth.test.com; 

     proxy_pass_request_body off; 

     proxy_set_header Content-Length ""; 
     proxy_set_header X-Original-URI $request_uri; 
     proxy_set_header Host $http_host; 

     if ($http_cookie ~* "sso_token=([^;]+)(?:;|$)") { 
      set $token "$1"; 
     } 
     proxy_set_header X-SSO-TOKEN $token; 
    } 

    location/{ 
     try_files $uri $uri/ /index.php; 
    } 

    location ~ \.php$ { 
     include snippets/fastcgi-php.conf; 

     fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
    } 

    location ~ /\.ht { 
     deny all; 
    } 
} 

나는 500 HTTP 상태 코드를 얻고있다 http://www.test.com 접근으로

.

그리고이 있는지 오류에 순간 http://auth.test.com에서

auth request unexpected status: 302 while sending to client, client: 172.16.8.23, server: www.test.com, request: "GET/HTTP/1.1", host: "www.test.com" 

그냥 행방 불명입니다 401X-SSO-TOKEN 경우 반환하고, 200 로그

. 302을 반환하지 않습니다.

은 내가 proxy_pass 자체가 오히려 그것을 다음이 작동합니다이 문서 http://nginx.org/en/docs/http/ngx_http_auth_request_module.html 보면 (그 말이 있다면?)

마지막 상태 코드를 반환하는 대신 302auth_request에 모듈의 반환 생각하지만, 내가 할 수있는 그것을 이해하지 못한다.

도움이나 의견을 보내 주시면 감사하겠습니다.

감사합니다.

답변

0

발견!

는 학교 소년 오류 :(

내 호스트 머신 내가이/등 /를 * .test.com 도메인에 대한 항목을 호스트 추가했다에서만. 그렇게하여 VM에서의 nginx를 실행하고,이었다 internal proxy_pass 호출이 실제 auth.test.com으로 이동하여 302를 반환했습니다. 내 VM에 호스트 항목을 추가 한 후 모두 정상적으로 작동했습니다.