2017-06-15 2 views
0

NGINXを初めて使用しています。 NGINXへの1回のリクエストで、応答の結果に影響する2つのプロキシコールを行うことが可能かどうかは疑問です。NGINXからカスタムトークンを発行

具体的には、トークンが別のサービスからの応答ヘッダーとして与えられるNGINX要求の応答にトークンを追加したいと考えています。

理論的には、それが何かのような...

場所/ {

#コールサービスをトークンと多分、変数への応答を設定するために見えるかもしれませんか?

#のproxy_passは、レスポンスヘッダに

#はステップ1からのトークンを追加します。実際の呼び出しを行います

}

これはnginxのによってサポートされている場合、私は詳細に調べる必要がある場合、私は、知りませんカスタムモジュール、またはこれが単なる悪い考えである場合

ありがとうございました。

答えて

0

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; 
    } 
関連する問題