→Webサーバ
- 入門! nginx 2012.1.10
- nginx [えんじんえっくす] は Igor Sysoev によって作られた HTTP とリバースプロキシのサーバで、メールプロキシサーバでもあります
設定ファイル†
- Nginxのconf.dとsites-availableとsites-enabledの違い - Qiita 2021
- /etc/nginx/conf.d/:デフォルトの設定(/etc/nginx/nginx.conf)を上書きする設定を記述するファイルの置き場。
- /etc/nginx/sites-available/:運用したいドメインごとにファイルを作成。ここには利用可能な設定ファイルが置かれるだけで、ここに置いたファイルが直接Nginxの設定に反映されるわけではない。
- /etc/nginx/sites-enabled/:メイン設定ファイル(/etc/nginx/nginx.conf)から読み込まれる。ここから /etc/nginx/sites-available/配下のファイルへのシンボリックファイルを貼る。
C10K問題†
- Web2.0とC10Kに関する誤解 2007.1.11
- ネットワークプログラムでforkやスレッドが必要なのは,ソケットからの要求に対して同時並行的に処理を行う必要があるからで,cometのようにクライアントからの書き込み要求は別Port,あとは大多数の維持コネクションへの処理を行うケースに関しては当てはまらない.
- ソケットは確かに不足するが,カーネルパラメータで増やすことが可能だ.またカーネルがソケット1個を保持するのに必要なメモリもたかが知れてるので問題にはならない.
- TCPはコネクションを(クライアント側IP,クライアント側Port,サーバ側IP,サーバ側Port)の組で管理しているので,同一IPから65536のコネクションが張られない限り問題は起きない.
- Web2.0の先にあるC10K問題 2007.1.10
- LinuxなどUNIX系のOSでは、メモリ上で実行中のプログラムに与えられるプロセス番号は符号付き16ビット整数だ。
- つまり、デーモン(サーバプロセス)も含め、すべての実行中のプロセスには1〜32767までのユニークな番号が与えられていることになる。
- ところが、HTTPサーバのApacheなどはクライアント1台からのリクエストに対して1つのプロセスを生成するため、必然的に同時接続数は3万クライアント程度が上限となる。
- 多くのOSでは、万単位のスレッド生成ということを前提として設計されていない。例えば、特別な設定をしていないLinuxでは、1スレッド当たりデフォルトで2MB程度のスタックメモリを割り当てる。1万クライアント=1万スレッドであれば20GBのメモリが必要になる。これでは、仮想メモリを使うとしてもパンクしてしまう。
Last-modified: 2025-12-07 (日) 15:25:53