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

推薦する

独自の FTP および SFTP サーバーを構築するプロセスの紹介

FTP と SFTP はファイル転送プロトコルとして広く使用されています。関連する機能を開発するには...

Navicat for Mysql 接続エラー 1251 (接続失敗) の問題を解決する

以前書いた内容が詳細さに欠けていたため、今回は修正・補足しました。ただし、以前の MySQL バージ...

Zookeeperスタンドアロン環境とクラスタ環境の構築

1. 単一マシン環境の構築# 1.1 ダウンロードZookeeper の対応するバージョンをダウンロ...

Docker Alpine イメージのタイムゾーン問題に対する完璧な解決策

最近、Docker を使用して Java アプリケーションをデプロイしていたときに、タイムゾーンが間...

mysqlを完全にアンインストールします。個人テストです!

MySQL をクリーンアンインストールします。個人的にテストしたところ、今回はようやくうまくいきま...

アコーディオン効果を実現するJavaScript

この記事では、アコーディオン効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

jsBridgeの動作メカニズムを1つの記事で学ぶ

目次js 呼び出しメソッドアンドロイド1.jsはネイティブを呼び出す2. ネイティブコールjs iO...

Zabbix 監視 Docker アプリケーション構成

コンテナの応用はますます一般的になっていますが、大量のコンテナをどのように管理すればよいのでしょうか...

MySQL フェイルオーバー ノート: アプリケーション対応設計の詳細な説明

1. はじめに周知のように、データベース ミドルウェアの読み取り/書き込み分離のアプリケーション シ...

HTML 内の input type="reset" タグが無効 (機能しない) である理由として考えられるもの。

<html:reset> タグを使用すると、リセット ボタンが無効になり、ボタンをクリッ...

MySQL 外部キー制約の無効化と有効化コマンド

MySQL 外部キー制約の無効化と有効化: MySQL 外部キー制約が有効になっているかどうかは、グ...

JavaScript でピンボール ゲームの Web バージョンを実装する

参考までに、JavaScriptのオブジェクトとメソッドを使用して実装されたWebピンボールゲームを...

IDEA で mysql8.0.3 と mybatis-generator を使用する際に発生するバグ

1. プラグインを追加し、pomファイルの下に次の設定を追加します。 <!-- mybatis...

JavaScript が Jingdong の虫眼鏡効果を模倣

この記事では、Jingdongの虫眼鏡効果を実現するためのJavaScriptの具体的なコードを紹介...