2017-11-23 13 views
0

私たちはAWSプレストクラスターの前にセキュリティレイヤーを提供するためにnginxを使用しています。私たちはnginx-presto-cluster.our-domain.comのSSL証明書を登録しましたnginxリバースプロキシはリクエストURLを別々に扱います

prestoに対するリクエストは、基本認証でnginxに渡されます。 prestoのSQLクエリは、クエリ結果をフェッチするために、マルチプルシーケンシャルリクエストをサーバに送信します。

location/{ 
    auth_basic $auth; 
    auth_basic_user_file /etc/nginx/.htpasswd; 
    sub_filter_types *; 
    sub_filter_once off; 
    sub_filter 'http://localhost:8889/' 'https://presto.nginx-presto-cluster.our-domain.com/'; 
    proxy_pass http://localhost:8889/; 
} 

プレストの応答が結果をフェッチするnextUriが含まれています。

は、我々はこのようになりますnginx.confを作成しました。 sub_filterは、これらのUriをlocalhost:8889から私たちの安全なドメインに書き換え、nginxを再び通過させます。

問題: 最初の応答が望ままったく同じように見える体があります。

{ 
    "id":"20171123_104423_00092_u7hmr" 
    , ... 
    ,"nextUri":"https://presto.nginx-presto-cluster.our-domain.com/v1/statement/20171123_104423_00092_u7hmr/1" 
    , ... 
} 

を2番目の要求は、しかし、次のようになります。

{ 
    "id":"20171123_105250_00097_u7hmr" 
    , ... 
    , "nextUri":"http://localhost:8889/v1/statement/20171123_105250_00097_u7hmr/2" 
    , ... 
} 

我々はリライトを期待しただろう常に同じように働きます。

お手伝いができますか?

答えて

0

私たちは、上記の設定スニペットに

proxy_set_header Accept-Encoding ""; 

を追加することで、問題を解決しました。

これは、トラフィックがプロセスで圧縮されている可能性があるためです。 文字列の置換は、圧縮されたコンテンツでは機能しません。

この圧縮を防止するために、いかなるエンコードも受け入れられないため、私たちはこの圧縮を防ぎます。

関連する問題