2017-06-15 89 views
0

我是NGINX的新手。我想知道是否可以通過對NGINX的單一請求提出兩個影響響應結果的代理呼叫。從NGINX發出自定義令牌

具體來說,我想添加一個令牌給NGINX請求的響應,其中令牌是作爲單獨服務的響應頭提供的。

從理論上講,它可能看起來像......

位置/ {

#呼叫令牌服務,並設置爲變量的反應,也許?

#proxy_pass使實際的通話

#添加標記從第一步到響應頭

}

,我不知道這是由NGINX支持,如果我需要深入研究一個自定義模塊,或者如果這只是一個壞主意。

謝謝。

回答

0

Got it!

location/{ 
     if ($http_x_entry_id = "") { 
     return 302 /entry; 
     } 

     auth_request /token/test-token; 
     auth_request_set $token $upstream_http_x_test_token; 

     set $test_ui test-ui; 
     proxy_pass http://$test_ui; 

     add_header X-My-Token "$token"; 
    } 

    location /token/test-token { 
     internal; 
     set $token_api token-api; 

     error_page 500 =401 /error/401; 
     error_page 400 =401 /error/401; 

     proxy_method POST; 
     proxy_pass_request_body off; 
     proxy_set_header Content-Length ""; 
     proxy_set_header X-Original-URI $request_uri; 
     proxy_set_header Host $http_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; 

     rewrite /token/(.*) "/$1/$http_x_entry_id" break; 
     proxy_pass http://$token_api:8080; 
    }