テキストまたはJSONを返すようにnginxを設定する方法

テキストまたはJSONを返すようにnginxを設定する方法

特定のインターフェースをリクエストするときに、指定されたテキスト文字列または JSON 文字列を返す必要がある場合があります。ロジックが非常に単純な場合、または単に固定文字列である場合は、nginx を使用してすばやく実装できるため、リクエストに応答するプログラムを作成する必要がなくなり、サーバーのリソース使用量が削減され、応答パフォーマンスが非常に速くなります。

まず、固定テキストと JSON を返す方法を見てみましょう。サーバーで位置情報の傍受を設定するだけです。設定例は次のとおりです。

修正テキスト:

場所 ~ ^/get_text {
  デフォルトタイプはtext/htmlです。
  200 'これはテキストです!' を返します。 
}

修正されたjson:

場所 ~ ^/get_json {
  デフォルトのタイプは application/json です。
  200 '{"status":"success","re​​sult":"nginx json"}' を返します。
}

保存後、設定を有効にするには再読み込みしてください。注意: default_type を追加する必要があります。追加しないと、ブラウザは認識されないファイルとしてダウンロードします。

あるいは、次に示すように、要求された URL に基づいて異なる文字列を返すこともできます。

場所 ~ ^/get_text/article/(.*)_(\d+).html$ {
  デフォルトタイプはtext/htmlです。
  $s を $1 に設定します。
  $d を $2 に設定します。
  200 str:$s$d を返します。
}

この方法では、URL 内の文字列を簡単にインターセプトできます。もちろん、(.*) を使用してすべてを一致させることもできます。実際には、さまざまなニーズに応じて定義できます。

上記は簡単な例ですが、サーバー環境での簡単な処理であれば、nginx を駆使することでプログラミングの手間を省くことができます。

さらに、中国語の表示の問題も付け加えておきます。Linux は utf-8 文字エンコーディングを使用しているため、サーバー側でエンコーディングが指定されていない場合や静的ページでエンコーディングが宣言されていない場合、ブラウザはデフォルトでページを GBK エンコーディングでレンダリングします。そのため、デフォルトでは、中国語が返された場合、ブラウザは gbk を使用して utf-8 エンコーディングを解析しますが、明らかに文字化けが発生します。このとき、nginx のロケーション ブロックにヘッダーを積極的に追加して、正しいエンコーディングを出力する必要があります。追加する内容は次のとおりです。add_header add_header Content-Type 'text/html; charset=utf-8' ; このようにして、次の図に示すように、ブラウザは使用しているエンコーディングを認識します。

または、add_header 行をcharset utf-8変更することもできます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • NginxはJsonインスタンスを直接返します
  • Nginx ログを JSON 形式に変更する方法
  • nginxでjsonまたはテキスト形式を返す方法
  • nginx で JSON 形式でログを記録する設定例

<<:  JSキャンバスは描画ボードと署名ボードの機能を実現します

>>:  MySQL データベースのマスター スレーブ分離のサンプル コード

推薦する

CSS を使用して等アスペクト比のアダプティブ コンテナを実装する方法

最近、モバイル ページを開発しているときに、ページの幅が 100% の場合、高さは幅の半分になり、携...

Linuxでスワップパーティションファイルを作成する方法

スワップの紹介Linux のスワップ (スワップ パーティション) は、Windows の仮想メモリ...

MySQLの3値ロジックとNULLの詳細な説明

目次NULLとは何か2種類のNULLなぜ「= NULL」ではなく「IS NULL」と書く必要があるの...

バントリストコンポーネントをスクロールしても、スクロールバーの位置は保持されます。

バントリストコンポーネントをスクロールするときに、スクロールバーの位置が保持されます。これは、kee...

Linux でユーザー アカウントをロックおよびロック解除する 3 つの方法

組織内で何らかのパスワード ポリシーがすでに実装されている場合は、この記事を読む必要はありません。た...

MySQLの手順を完全に削除する

目次1. まずMySQLサーバーを停止する2. MySQLサーバーをアンインストールする3. MyS...

MYSQLでリモートアクセス権限を有効にする方法

1. MySQLデータベースにログインするmysql -u ルート -pユーザーテーブルを表示する ...

MySQL ツリー構造テーブルの設計と最適化に関する簡単な説明

序文多くの管理・オフィスシステムでは、ツリー構造がいたるところで見られます。たとえば、「部門」や「機...

JavaScript の useRef と useState の紹介

目次1. useStateフック2. useRefフック3. useRef と useState 4...

Linuxのlocateコマンドの使い方

01. コマンドの概要実際には、locate コマンドは find -name の別の書き方ですが、...

better-scrollプラグインのスライドできないバグについて(2021年プラグインで解決)

より良いスクロールの原則親コンテナーであるため、ラッパーの高さはコンテンツのサイズに応じて増加します...

Vueはフォーム検証機能を実装します

この記事では主に、NUXT の validate メソッドに基づいてフォーム検証を実装する方法につい...

JavaScriptはクリックするとランダムなグラフィックを生成します

この記事では、クリックするとランダムグラフィックの生成を実現するJavaScriptの具体的なコード...

Linux インストール Apache サーバー構成プロセス

袋を用意するインストールApacheがすでにインストールされているかどうかを確認するrpm -qa ...

docker に php-fpm サービス/拡張機能/構成をインストールする詳細なチュートリアル

macにbrewを使ってphp56をインストールしたところ、 opensslがバージョン1.1だった...