テキストまたは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 データベースのマスター スレーブ分離のサンプル コード

推薦する

MySQL 増分バックアップとブレークポイントリカバリスクリプトの例

導入増分バックアップとは、完全バックアップまたは最後の増分バックアップの後、後続の各バックアップでは...

Webpack で環境変数を使用するためのさまざまな正しい姿勢

目次前に書いてビジネスコードは環境変数を使用するwebpack.DefinePlugin プラグイン...

Docker と Intellij IDEA の融合により、Java 開発の生産性が 10 倍向上

目次1. 開発前の準備2. 新しいプロジェクトIdea は Java 開発のための強力なツールであり...

既存のDockerコンテナの内容を変更する方法

1. Docker psはコンテナをリストします 2. Docker cpはコンテナにファイルをコピ...

ウェブデザイナーが注意すべき 43 のウェブデザインの間違い

これはウェブサイトのユーザビリティに関する記事です。著者は自身の経験に基づいて、ウェブサイトのデザイ...

Vueはシンプルなスライダー検証を実装する

この記事の例では、Vueスライダー検証の実装を共有しています。コードは次のとおりです。 <テン...

シンプルな時計を実装するJavaScript

この記事では、JavaScriptでシンプルな時計を実装するための具体的なコードを参考までに紹介しま...

Vue カスタム箇条書きボックス効果 (確認ボックス、プロンプトボックス)

この記事の例では、参考のためにVueカスタムポップアップ効果の具体的なコードを共有しています。具体的...

Linux (Ubuntu 18.04) に vim エディタをインストールする方法

デスクトップ システムをダウンロードするには、Ubuntu の公式 Web サイト (https:/...

nginxフォワードプロキシとリバースプロキシの詳細な説明

目次フォワードプロキシnginx リバースプロキシnginx リバースプロキシ 02リバースプロキシ...

Dockerイメージのインポートとエクスポートの実装

GitLabのDocker使用法gitlab ドッカー起動コマンド docker run -d -p...

カルーセル効果を作成するためのjs

カルーセルはフロントエンド開発において比較的重要なポイントだと思います。ネイティブjsの知識ポイント...

MySQL 5.7.17 とワークベンチのインストールと設定のグラフィックチュートリアル

この記事では、MySQL 5.7.17ワークベンチのインストールと設定方法を参考までに紹介します。具...

OpenSSL は双方向認証のチュートリアルを実装します (サーバーとクライアントのコード付き)

1. 背景1.1 問題点最近の製品テスト レポートでは、PKI ベースの認証方法の使用が推奨されて...

MySQLクエリ文の実行プロセスを理解するための記事

序文要件を満たす特定のデータをデータベースから取得する必要があります。Select ABC FROM...