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

推薦する

DockerコンテナでLNMPをコンパイルする例

目次1. プロジェクトの説明2. Nginxイメージの作成3. MySQLイメージの作成4. PHP...

MySQL の遅いクエリを見つける方法

序文誰もが日常業務で SQL の最適化を経験したことがあると思います。したがって、最適化の前に、遅い...

MySQL トリガー構文とアプリケーション例

この記事では、例を使用して MySQL トリガーの構文とアプリケーションを説明します。ご参考までに、...

マークアップ言語 - タイトル

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Vueのフロントエンドとバックエンドのポートの不一致の問題を解決する

Vue のフロントエンドとバックエンドのポートが一致していませんconfig index.jsファイ...

MySQLでページングクエリを実装する方法

SQL ページング クエリ:背景会社のシステムには、構成管理用のプラットフォーム、いわゆる CRUD...

nginxディレクトリパスをリダイレクトする方法

ドメイン名に続くパスがデフォルトの Web ディレクトリではなく、ローカル ディスク上の他のディレク...

jsはカスタムドロップダウンボックスを実装します

この記事の例では、カスタムドロップダウンボックスを実装するためのjsの具体的なコードを参考までに共有...

行間隔が広い場合の解決策(IE では 5 ピクセル多い)

コードをコピーコードは次のとおりです。 li {幅:300px; 高さ:23px; 行の高さ:24p...

Linux で CPU 使用率が高くなる原因をトラブルシューティングするプロセスの詳細な説明

目次序文始めるステップトラブルシューティング序文CPU 使用率が高くなるのは、オンラインでよくある問...

Tomcat で複数の war パッケージを展開する方法と手順

1 背景JDK1.8-u181とTomcat8.5.53がインストールされました。インストール後、環...

MySQL マルチテーブル結合入門チュートリアル

接続は、実際の外部キー(人工的に作成された 2 つのテーブル間の対応関係を指します。対照的に、FOR...

CSS でフロートとマージンを混合するサンプルコード

最近の勉強で、GitHub でレイアウトの練習をいくつか見つけたのですが、レイアウトにまったく慣れて...

Reactは適応性の高い仮想リストを実装する

目次変換前:変換後: 0x0の基本0x1 「固定高さ」の仮想リストを実装する原理:最適化: 0x2 ...