質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

解決済

1回答

879閲覧

nginxのlimit_connディレクティブが機能しない

masa_000

総合スコア18

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

0グッド

0クリップ

投稿2023/01/26 07:46

編集2023/01/28 03:04

実現したいこと

nginxを使ってサイトを公開するテストをしています。
以下のnginx.confでhttp://xxx.com にアクセスしてページを表示するところまではうまくいったのですが、limit_connがうまく機能しません。jmeterを使って同時にアクセスしても失敗になりません。
本をそのまま写しているだけなのでうまくいくはずなのですが原因がわかりません。
nginx.confの設定のどこが間違っているか教えていただけないでしょうか?

該当のソースコード

worker_processes auto; events{ worker_connections 1024; } http{ include mime.types; default_type application/octet-stream; limit_conn_zone $binary_remote_addr zone=addr_limit:10m; sendfile on; tcp_nopush on; keepalive_timeout 60; log_format main '$remote_addr - $remote_user - [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; server{ listen 80; server_name xxx.com; location / { limit_conn addr_limit 1; } #ルートディレクトリを設定 root /usr/share/nginx/html; index index.html; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; } }

補足情報(FW/ツールのバージョンなど)

nginx/1.18.0
Ubuntu 20.04.2 LTS

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ngx_http_limit_conn_module の マニュアル に以下の記載があります。

Not all connections are counted. A connection is counted only if it has a request being processed by the server and the whole request header has already been read.

接続数をカウントするタイミングが「リクエストヘッダをすべて読み込んだ」時点から「リクエストを処理中」まで (レスポンスをすべて返すまで?) とのこと。

テストした URL がレスポンスをすぐに返すようなものであれば、カウントがすぐに 0 に戻って同時接続にならないのでは?
処理に時間がかかるようなものを用意してテストするといいと思います。

投稿2023/01/26 09:40

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masa_000

2023/01/28 03:01

おっしゃっている通りでした。index.htmlをファイルサイズを大きくして読み込みを遅くしたら、アクセスに失敗するようになりました。。 言われなければわかりませんでした。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問