2017-07-06 16 views
3

Dockerコンテナで実行しているAPIゲートウェイとしてKongを使用したいと考えています。各リクエストは最初にNgInxサーバーを経由しなければなりません。リクエストされたuriがexample.com/apiと一致する場合は、Kong内にapiが登録されている必要があります。これを実現するためにKongとリバースプロキシとしてのNgInx

私は、次のコマンドを使用して香港に私のAPIを追加しました:

curl -i -X POST --url ipnumber:8001/apis -d 'name=my-api' -d `enter code here`'upstream_url=http://httpbin.org' -d 'hosts=example.com' -d 'uris=/api/my-api' 

私は正しい答えを得るので、私は香港が正常に機能していると仮定し、以下のコマンドを実行することにより。

curl -i -X GET --url ipnumber:8000/api/my-api --header 'Host: example.com' 

私のnginxの設定次のようになります。私のホストファイルで

upstream kong { 
    server 127.0.0.1:8000; 
} 

location /api { 
    proxy_pass: http://kong; 
} 

私はドメインexample.comとnginxのサーバーのIPを設定しました。

問題は、私がexample.com/api/my-apiまたはexample.com/my-apiを参照しているときに、結果がNgInxの404エラーページです。

私はIP番号して閲覧した場合:8000/API /私の-APIを、それは、ホスト名がexample.com

私ではありませんので、正確である与えられた値に一致するAPIは、ありませんと言って香港のメッセージになり私はこの問題をすでに長い間探していますが、私はそれを修正することができませんでした。私もhttps://getkong.org/docs/0.10.x/configuration/#custom-nginx-configuration-embedding-kongを探していましたが、私はすでに自分のnginxの設定をしているので、私はそうする必要があるかどうかはわかりません。

フィードバックにご協力いただきありがとうございます。

答えて

0

ホストヘッダーの上流をKongに転送するようにNGINXに指示する必要があります。 でこれを行うことができます。

location /api { 
    proxy_pass: http://kong; 
    proxy_set_header Host $host; 
} 
関連する問題