2.4. API の設定


システムが機能する仕組みを以下に示します。

  1. シンサーバーは、ポート 8000 で起動します。
  2. アップストリームの YOURAPINAME は、localhost:8000 でリッスンしています。
  3. ポート 80 の今後の接続( server セクションで定義されているように)は、YOURAPINAME に「リダイレクト」です。

2.4.1. 3scale の場合

wheel を修正して流量制御、アクセス制御、および解析をゼロから実装するのではなく、3scale を使用します。アカウントがまだアカウントをお持ちでない場合は、ここにサインアップしてアクティベートし、表示されたリンクで新規インスタンスにログインします。初回ログイン時に、作成されるサンプルデータのオプションを選択してください。したがって、後で使用する API キーがいくつかあります。tour を確認して、システム機能(オプション)を把握してから実装に進んでください。

即時の結果を取得するには、ステージング環境で API ゲートウェイで開始します。このゲートウェイは、開発中に使用することができます。その後、完全な実稼働デプロイメント用にスケールアップできる NGINX プロキシーを設定します。

ここでは、API プロキシーの設定方法や、より高度な設定オプション についてのドキュメントを参照してください。

3scale アカウントにサインインしたら、メイン Dashboard 画面で API を起動するか、または API に Go to API→Select the service(API)→Integration in the sidebar→Proxy https://www.3scale.net/2015/06/how-to-deploy-an-api-amazon-ec2/

API バックエンドのアドレスを設定します。

`http://YOURAPP.cloudapp.net:80`
Copy to Clipboard Toggle word wrap
  1. 3scale で一部のアプリケーション認証情報を作成したら、ステージング環境用 API ゲートウェイエンドポイントに到達して API をテストすることができます。

    `https://XXX.staging.apicast.io/v1/words/awesome.json?app_id=APP_ID&app_key=APP_KEY`
    Copy to Clipboard Toggle word wrap

ここで、XXX はステージング API ゲートウェイに固有の設定で、APP_ID は 3scale アカウントへの初回ログイン時に作成したサンプルアプリケーションの ID とキーです。APP_KEY(その手順がない場合は、開発者アカウントを作成し、そのアカウント内にアプリケーションを作成します)。

これは、次回認証情報が正しくない状態で、アプリケーション認証情報なしで試行します。認証後、定義した流量制御内、およびその流量制御で認証します。満足度に機能したら、NGINX の設定ファイルをダウンロードします。

注記

エラーがあれば、API に直接アクセスできるかどうかを確認します(your-public-dns:3000/v1/words/awesome.json)。利用できない場合は、AWS インスタンスが実行しているかどうかと、タインサーバーがインスタンスで実行されているかどうかを確認します。*

API バックエンドアドレスを http://YOURAPP.cloudapp.net:80 に変更できます。

終了したら、Download your nginx config をクリックします。これにより、アプリケーションを設定するために使用する .conf および .lua ファイルが含まれるアーカイブがダウンロードされます。

.conf を適宜変更します。

API ゲートウェイと API が同じ仮想マシンにある場合は、ブロックを削除します。

upstream backend_YOURAPP.cloudapp.net{
server ....
}
Copy to Clipboard Toggle word wrap

…​and replace with…​

upstream YOURAPINAME {
server 127.0.0.1:8000;
}
Copy to Clipboard Toggle word wrap
警告

YOURAPINAME には、RFC 3986 で定義された URL の有効な文字のみを含めることができます。

.lua ファイルで、ngx.var.proxy_pass = "http://backend_YOURAPP.cloudapp.net" の行を変更します。

すべてのケースで ngx.var.proxy_pass = "http://YOURAPINAME" を使用します。

server_name api.2445580546262.proxy.3scale.net;

server_name YOURSERVICENAME.cloudapp.net;

server ブロックで、上部に以下を追加します。

root /home/USERNAME/apps/YOURAPINAME/current;
access_log /home/USERNAME/apps/YOURAPINAME/current/log/thin.log;
error_log /home/USERNAME/apps/YOURAPINAME/current/log/error.log;
Copy to Clipboard Toggle word wrap

replace access_by_lua_file lua_tmp.lua;

…​with…​ access_by_lua_file /opt/openresty/nginx/conf/lua_tmp.lua;

post_action /out_of_band_authrep_action; の前に以下を追加します。

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
Copy to Clipboard Toggle word wrap

最後に、これらのファイル nginx.conf および tmp_lua.lua の名前を変更します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat