2016-08-31 13 views
0

私はポート8080で実行しているJavaスプリングアプリケーションを持っています。このアプリケーションはnginxリバースプロキシの背後で実行されるヘッダ 'x-auth-token'を返す必要があります。私はそれに直接(バイパスnginxの)を要求する場合NGINXは応答ヘッダーを渡さない

アプリケーションが正しく、ヘッダを生成する:

http://169.54.76.123:8080

iを作るときに応答ヘッダ

のセットにおけるヘッダで応答しなくnginxのリバースプロキシを介して、要求は、ヘッダは表示されない

https://169.54.76.123

nginxがssl終了を処理します。

私のnginxのconfファイル

upstream loadbalancer { 
    server 169.54.76.123:8080 ; 
} 

server { 
    listen  169.54.76.123:80; 
    server_name api.ecom.com; 
    return 301 https://api.ecom.com$request_uri; 
} 
server { 
    listen 169.54.76.123:443 ssl; 
    keepalive_timeout 70; 
    server_name api.ecom.com; 

    ssl_certificate /etc/ssl/api_chained.cert ; 
    ssl_certificate_key /etc/ssl/api.key ; 
    ssl_session_cache shared:SSL:10m; 
    ssl_session_timeout 10m; 
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2 SSLv3 SSLv2; 
    ssl_ciphers   ALL:!ADH:RC4+RSA:HIGH:!aNULL:!MD5; 

    charset utf-8; 

    location/{ 
     proxy_pass http://loadbalancer/$request_uri ; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     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; 
    } 

質問は:nginxのは、応答に 'X-AUTH-トークン' を通過しないのはなぜ?

レスポンスに含めるにはどうすればよいですか?

私は、変数の値を取得しようとしましたが、nginxのは、それを持っていないようです:

私は$sent_http_x_auth_token$upstream_htto_x_auth_tokenを使用しますが、これらの変数は、任意の値が含まれていない(と思う)

私は

012:ノー成功も試み

add_header x-auth-token $sent_http_x_auth_token;:これらの変数を使用して自分自身をヘッダを追加しようとしました

add_header x-auth-token $upstream_http_x_auth_token;いずれも成功しません。

も、私が試した:いいえ成功

proxy_pass_header x-auth-token;

を問題は何ですか?どのように私はそれをデバッグできますか? どの部分が 'x-auth-header'を阻止するかブロックしますか?上流または代理店または何ですか? nginxのは、応答からカスタムヘッダーを削除していないため、任意の助け

おかげで

答えて

0

通常は、何もする必要があります。

あなたの場所のコンテキストで

log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
        '$status $body_bytes_sent ' 
        'X-Auth-Token: "$sent_http_x_auth_token"'; 

access_log logs/access.log main; 

のようなもので、たとえば、要求の実行を追跡するためにlog_formatディレクティブを使用することができます。

あなたがチェックすると、要求が成功したことを確認する200応答コードが得られますか?

関連する問題