OpenResty XRay がどのようにしてアプリケーションの問題特定と効率化を支援するかをご覧ください。

詳細はこちら LIVE DEMO

ここでは、OpenResty を使用して「Hello World」HTTP インターフェースを実装する方法をご紹介します。

screenshot 1

まず、OpenResty の nginx を使用していることを確認する必要があります。

1
2
export PATH=/usr/local/openresty/nginx/sbin:$PATH
which nginx

screenshot 2

通常、以下のパスにあります。

次に、ホームディレクトリに移動します。

1
cd ~/

この例では、hello という名前のディレクトリを作成し、そこに移動します。

1
2
mkdir hello
cd hello

screenshot 5

OpenResty アプリケーション用のテンプレートサブディレクトリを作成します。

1
2
mkdir logs conf
ls

screenshot 6

そして、conf サブディレクトリ内に簡単な nginx.conf ファイルを作成しましょう。

1
vim conf/nginx.conf
  1. 簡単にするため、単一の nginx ワーカープロセスを有効にします。
  2. ワーカープロセスごとに最大 1024 の接続を有効にします。
  3. ここで HTTP サーバーを設定します。
  4. reuseport を有効にして 8080 ポートでリッスンします。
  5. 最後に、このサーバーにルートロケーションを追加します。
  6. デフォルトの MIME タイプを text/plain に設定します。
  7. 「Hello World」というレスポンスボディを出力する Lua コードを埋め込みます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 8080 reuseport;
location / {
default_type text/plain;
content_by_lua_block {
ngx.say("Hello World")
}
}
}
}

では、-t オプションを使用して設定が正しいかテストしてみましょう。

1
nginx -p $PWD/ -t

screenshot 17

良さそうですね!

それでは、この OpenResty アプリケーションを実際に起動してみましょう。

1
nginx -p $PWD/

screenshot 19

そして、nginx プロセスが実行されているか確認します。

1
ps aux|grep nginx|grep -v /tmp/

screenshot 20

素晴らしいです!すべて起動しています。マスタープロセス 1 つとワーカープロセス 1 つです。

ここで、curl コマンドラインツールを使用して、このサーバーにテスト HTTP リクエストを送信できます。

1
curl 'http://127.0.0.1:8080/'

確かに「Hello World」というレスポンスボディが得られました。

screenshot 23

ウェブブラウザで / URI にアクセスしてみることもできます。

スクリーンショット 25

予想通り「Hello World」が表示されていることが確認できます。

著者について

章亦春(Zhang Yichun)は、オープンソースの OpenResty® プロジェクトの創始者であり、OpenResty Inc. の CEO および創業者です。

章亦春(GitHub ID: agentzh)は中国江蘇省生まれで、現在は米国ベイエリアに在住しております。彼は中国における初期のオープンソース技術と文化の提唱者およびリーダーの一人であり、Cloudflare、Yahoo!、Alibaba など、国際的に有名なハイテク企業に勤務した経験があります。「エッジコンピューティング」、「動的トレーシング」、「機械プログラミング」 の先駆者であり、22 年以上のプログラミング経験と 16 年以上のオープンソース経験を持っております。世界中で 4000 万以上のドメイン名を持つユーザーを抱えるオープンソースプロジェクトのリーダーとして、彼は OpenResty® オープンソースプロジェクトをベースに、米国シリコンバレーの中心部にハイテク企業 OpenResty Inc. を設立いたしました。同社の主力製品である OpenResty XRay動的トレーシング技術を利用した非侵襲的な障害分析および排除ツール)と OpenResty XRay(マイクロサービスおよび分散トラフィックに最適化された多機能ゲートウェイソフトウェア)は、世界中の多くの上場企業および大企業から高い評価を得ております。OpenResty 以外にも、章亦春は Linux カーネル、Nginx、LuaJITGDBSystemTapLLVM、Perl など、複数のオープンソースプロジェクトに累計 100 万行以上のコードを寄与し、60 以上のオープンソースソフトウェアライブラリを執筆しております。

翻訳

英語版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!