木曜日, 7月 11, 2013

Apache2.2.24付属のデフォルトなhttpd.confを読み解く


RHEL5.5でApache2.2.24をコンパイルした状態の、デフォルトなhttpd.confを読み解いていきます。
それぞれのディレクティブに、Apacheの公式マニュアルへのリンクをつけておきましたので、ホントヵよ?というときには、原本をご覧いただければと思います!
なお完全に個人的な見解で多々間違い等あると思いますので、お気づきの点があれば教えてください。



■デフォルトのconfig設定内容

コメントアウト行を除いた状態で確認していきます。OSやディストリビューションごとに違いが多々あると思うので、そのあたりは適宜読み替えてもらえればと思います。



ServerTokens OS
ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 120
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
ServerTokens OS ←サーバー情報の返し値。OS=「Apache/2.2.x (Red Hat) Server at xxx.com Port 80」など。推奨はprod。
ServerRoot "/etc/httpd" ←configファイル内で有効な相対パスの起点を明示する。推奨はデフォルト。
PidFile run/httpd.pid ←pidファイル置き場。実際のパスは/etc/httpd/run/httpd.pid。推奨はデフォルト。
Timeout 120 ←セッションの最大待ち時間。tomcatやmod_rewriteへ渡すときはProxyTimeout値が優先される。Client側の反応がこの時間以上かかったり、逆にServer側のThink timeがこれを超えたら切って、502エラーなどをブラウザに返す。推奨はデフォルトまたはそれ以下。
KeepAlive On ←1セッションごとに3wayHandshakeをやり直すかどうか。推奨は環境やターゲットにより変わり、実際にベンチマークかけて判断するのが望ましい。個人的に好きなのはoff。
MaxKeepAliveRequests 100 ←KeepAlive時の、1セッション中の最大リクエスト数。これを超えたら切る。推奨はページ内のリクエスト数+ちょっと。Keepaliveがoffだと(当然だけど)参照されない。
KeepAliveTimeout 15  ←KeepAlive時に、最後のリクエストが来なくなってからKeepaliveを切るまでの時間。推奨はデフォルトまたはそれ以下。


<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>
<IfModule prefork.c> ←prefork選択時の各種設定。CentOSはpreforkがデフォルト。
StartServers       8 ←サーバー起動時に立ち上げる子プロセス数。推奨はデフォルト値。
MinSpareServers    5 ←有効なセッションがないとき、MinSpareServers以上~MaxSpareServers以下の子プロセスを立ち上げておくようにする。朝5~6時の閑散期のセッション数あたりを参考にする。推奨はデフォルト値。
MaxSpareServers   20 ←同上
ServerLimit      256 ←プロセス数の上限。推奨値はピーク時のリクエスト数に合わせることと、物理メモリから算出する
「x=使用可能な物理メモリ量/Apacheの1プロセスが使用するメモリ量」。変更したらulimitの変更もすること。
MaxClients       256 ←子プロセス数の上限。推奨はServerLimitと同数。
MaxRequestsPerChild  4000 ←子プロセスがリクエスト処理をする最大回数。cgi/php/tomcat/dbなどの内部プログラムがメモリを解放しないことがあるが、その場合ここを小さくし、頻繁に子プロセスを作り直すことで改善することもある。推奨はデフォルト。逆にここを少なくすることでメモリの使用量が安定するなら、内部プログラムの確認をしたいところ。
</IfModule>


<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>
<IfModule worker.c> ←worker選択時の各種設定。今回は省略するが、使っていないなら削除。
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>


Listen 80
Listen 80 ←待ちうけポート番号。apacheをrootで立ち上げる理由は、ポートとbindするため。


LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
...
cf. モジュール一覧で見やすいサイトさん
itochif.com:Apacheのインストールと設定
http://itochif.com/contents/Linux/centos5/web/apache_00100.html

LoadModule auth_basic_module modules/mod_auth_basic.so ←モジュールは多いので省略。
LoadModule auth_digest_module modules/mod_auth_digest.so


Include conf.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
UseCanonicalName Off
Include conf.d/*.conf ←指定するファイルを設定の一部として、追加で読み込む。
User apache ←子プロセスを立ち上げるユーザーの指定。
Group apache ←子プロセスを立ち上げるグループの指定。
ServerAdmin root@localhost ←エラーメッセージに含める電子メールアドレス。推奨はabuseのMLなど。
UseCanonicalName Off ←サーバー名とポート名の決定方法。推奨はデフォルト値。SSLのバーチャルはservername指定推奨。


DocumentRoot "/var/www/html"
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>
DocumentRoot "/var/www/html" ←ウェブから見えるメインのドキュメントツリーになる ディレクトリ。
 Alias のようなディレクティブにマッチしない場合に、ここからの相対パスで表示させるので、ここで指定したフォルダの下に変なものは置かないこと。 たとえばここを、「DocumentRoot "/etc"」として、「http://www.xxx.com/passwd」 なんてアクセスすると、サーバーのパスワードファイルを表示しようとしますのでやっちゃだめです。なお最後に/はつけません。推奨はデフォルト。
<Directory /> ←サーバーの物理的な/フォルダ以下に反映される基本設定で、DocumentRootや、DocumentRoot以下のDirectory、またはAliasなどのディレクティブで上書き指定されない限り、すべてのフォルダやパスにこの設定が摘要されます。なお、DocumentRootで/を指定する、もしくはAliasで/を指定するなどのことがない限り、/を参照されることはありませんので、推奨はデフォルト。
Options FollowSymLinks ←2013/09/02追記 某レンサバにてFollowSymLinksを悪用した攻撃が成功しましたので、不要であれば無効にしておくことが望ましい(が、根本原因は悪意のあるファイルをサーバー内に置かれることなので、そもそも侵入を許さないことが肝要。あとデメリットとして速度の低下に言及したページがあるので業務用ならパフォーマンスチェックも)。無効方法は、「Options -FollowSymLinks」として単独で止めるか、「Options None」としてオプションすべてを無効にする。
AllowOverride None ←2013/09/02追記 ユーザーや下位フォルダにてSymLinksなどを有効にさせないようにする。
</Directory>
<Directory "/var/www/html"> ←Directoryディレクティブで、指定したフォルダ以下に各種ディレクティブを反映させるもの。ここではDocumentRootで指定したフォルダについて、各種ディレクティブを指定している。
Options Indexes FollowSymLinks ←オプションの指定で、ファイルの一覧を出すIndexes シンボリックのアクセスを許可するFollowSymLinks。推奨はIndexes無効。
AllowOverride None  ←ディレクトリ単位で設定を変える.htaccessファイルへの権限移譲項目を明示する。推奨はデフォルト。
Order allow,deny ←デフォルトのアクセスの状態と Allow ディレクティブと Deny ディレクティブが評価される順番の決定。Allow,Denyならデフォルト拒否、Deny,Allowならデフォルト許可。推奨はなくて、フェイルセーフの考え方ならホワイトリストの「Order allow,deny」の方が好ましい。
Allow from all ←許可元を指定。allなので、全世界からのアクセスを許可している。
</Directory>

<IfModule mod_userdir.c>
    UserDir disable
</IfModule>
DirectoryIndex index.html index.html.var
AccessFileName .htaccess

<IfModule mod_userdir.c> ←「~ほげほげ」でアクセスできるようにするモジュールについて明示。
UserDir disable ←許可するかしないか。推奨はデフォルトのdisable。
</IfModule>
DirectoryIndex index.html index.html.var ←ファイル名を省略してアクセスしたときに探すファイルを相対パスで指定します。なければファイルの一覧を返しますが、Indexesが無効になっていると、403 Forbiddenエラーを返します。
AccessFileName .htaccess ←AllowOverride(分散設定)が許可されていれば、このファイルを/から指定のディレクトリまで探し、反映させます。推奨はなし。

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

<Files ~ "^\.ht"> ←Filesディレクティブは、全コンテナのファイルに有効になる設定で、ここでは、「.ht*」、つまり、.htaccess/.htpasswdなどは、外からアクセスできないようにしています。なので、これら分散設定ファイルやbasic認証などのファイルはなるべく".ht"から始まるファイル名で設定するようにするか、別途ダウンロードできないよう指定しましょう。
Order allow,deny
Deny from all
</Files>


TypesConfig /etc/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
</IfModule>
TypesConfig /etc/mime.types ←MIMEタイプと拡張子の組み合わせを書いたファイルを明示する。推奨はデフォルト。
DefaultType text/plain  ←拡張子のないファイルを指定されたときの、MIMEタイプを指定する。推奨はデフォルト。
<IfModule mod_mime_magic.c> ←もし、mod_mime_magicモジュールがロードされていれば、拡張子のないファイルの先頭何バイトかを読み取り、MIMEタイプを指定するもの。個人サイトなどでは有用かもしれないが、業務用サーバーなどでは無効化を推奨。
MIMEMagicFile conf/magic
</IfModule>


HostnameLookups Off 
HostnameLookups Off ←IPアドレスから名前を引いたものをログに保存します。推奨はデフォルト。


ErrorLog logs/error_log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#logformat
CustomLog logs/access_log combined
http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#customlog
ErrorLog logs/error_log ←エラーログの保存先を明示します。
LogLevel warn ←エラーログのレベルを明示します。推奨はなしだが、デフォルト以上にすること。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined ←ログのフォーマットを指定します。
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/access_log combined  ←ログの保存先とフォーマットを結びつけます。


ServerSignature On
ServerSignature On ←バーチャルサーバー名などを表示するかしないか。推奨はOFF。

Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Alias /icons/ "/var/www/icons/" ←ディレクトリリスティング時に使われるアイコン群。推奨は無効化
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>


<IfModule mod_dav_fs.c>
    DAVLockDB /var/lib/dav/lockdb
</IfModule>
<IfModule mod_dav_fs.c> ←もしWebDAVを使うためのモジュールが読み込まれていたら以下のディレクティブを有効化します。推奨は無効化。
DAVLockDB /var/lib/dav/lockdb ←DavLockDBディレクティブの指定。
</IfModule>


ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" ←ScriptAliasは単なるエイリアスとは違いCGIスクリプトがあることを示し、この下に置いたものはすべてプログラムとして扱い、実行可能になります。推奨は、使わないなら無効化。
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>


IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable ←自動index時の表示ルールを明記しています。FancyIndexingはソート順を変えられる行が増え、VersionSortはファイル一覧がバージョンごとに自然に並ぶように表示され、NameWidth=*はコラム幅を自動調整し、HTMLTable(Apache 2.0.23以降)は、tableを使った表で表現します。
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip ←自動index時に表示されるアイコンを決定する1つで、拡張子でなく、MIMEエンコードのx-compressかx-gzipであれば、/icons/compressed.gifのアイコンを表示するのを明示しています。
AddIconByType (TXT,/icons/text.gif) text/* ←自動index時に表示されるアイコンを決定する1つで、拡張子でなく、mimeタイプがtextなら/icons/text.gifのアイコン、mimeタイプがimageなら/icons/image2.gifを表示することを明示しています。
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe ←自動index時に表示されるアイコンを決定する1つで、拡張子や、ファイル名の一部などに合致させたものを表示させます。
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif ←自動index時に表示されるアイコンを決定する1つで、特定のアイコンを指定されていない時に表示するアイコンを明示しています。


ReadmeName README.htmlHeaderName HEADER.htmlIndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

ReadmeName README.html ←自動index時に作られるファイルのルールを明示しています。ReadmeNameはインデックスの終わりに付け加えられるファイルの名前を設定し、
HeaderName HEADER.html ←HeaderNameは逆に先頭に挿入するファイルの名前を設定し、
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t ←IndexIgnoreは一覧表示させないファイルやフォルダを明示します。


AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
AddLanguage ca .ca ←AddLanguageは、Webブラウザの優先言語設定によって、表示するファイルを決定するものです。たとえば「xxx.com/index.html」にアクセスして、ブラウザの優先度が日本語>韓国語ならば、まずMIME言語で日本語のjaを探し、ファイル名に.jaがつくものが日本語なので、index.html.jaを先に検索し、あればそれを表示、なければ次に韓国語のMIMEであるkoとその拡張子、.koがついたindex.htmlを探し、あればそれを表示する、という仕組みです。
AddLanguage cs .cz .cs
AddLanguage da .dk
//snip


LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
ForceLanguagePriority Prefer Fallback
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW ←LanguagePriorityは、MultiViewsオプションが指定されているときに、webブラウザが優先言語を明示しないときに、サーバー側が優先して検索するファイルを明示します。デフォルトでは、en ca cs と並んでいるので、まず.enがついた拡張子を探し、なければ.caを探し、それもなければ、と順次探していきます。
ForceLanguagePriority Prefer Fallback


AddDefaultCharset UTF-8
AddDefaultCharset UTF-8 ←AddDefaultCharsetは、「レスポンスのコンテントタイプが text/plain あるいは text/html の場合に追加するデフォルトの charset パラメータ」です。AddDefaultCharset Offで無効にできます。
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

AddType application/x-compress .Z ←AddTypeは、指定された拡張子のファイルを、特定のMIMEタイプに紐づけます。
AddType application/x-gzip .gz .tgz


AddHandler type-map var
AddHandler type-map var ←「AddHandler type-map var」は、type-mapファイルを使うよう明示します。type-mapファイルはちょっと面倒なのでマニュアルを見てもらいたいですが、おおざっぱに説明すると、たとえば「www.xxx.com/test」でアクセスしてきたとき、test.varを用意しておけば、Multiviewsより優先して表示させるファイルを指定することができるようにするものです。いらなそうですが、デフォルトのエラーメッセージの表示に使っている(例:HTTP_NOT_FOUND.html.varなど)ので、変えていなければ有効にしておきましょう。


AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
AddType text/html .shtml ←AddTypeは指定された拡張子のファイルを、特定のMIMEタイプに紐づけます…と書いてましたが、ここは特にSSIを記述したファイルの拡張子である「.shtml」もhtmlの一種だよと明示し、次につなげています。
AddOutputFilter INCLUDES .shtml ←「AddOutputFilter INCLUDES .shtml」は、.shtmlの拡張子がついたファイルは、クライアントに返す前にSSIの処理をしてから返す”フィルター”を明示しています。

Alias /error/ "/var/www/error/"
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    <Directory "/var/www/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>
</IfModule>
</IfModule>
Alias /error/ "/var/www/error/" ←「Alias /error/ "/var/www/error/"」は、エラー時に呼び出すファイルを保存したフォルダに、多様な設定を施しています。自前のエラーメッセージを用意していなければ、このまま使用しましょう。
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    <Directory "/var/www/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>
</IfModule>
</IfModule>


BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
BrowserMatch "Mozilla/2" nokeepalive ←BrowserMatchは、User-Agent に基づいて環境変数を変更を明示するものです。
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

って感じで、足りない部分などは各自で補完願います。



■デフォルトのままなら今すぐ変更したいもの一覧

取り急ぎ、バージョン情報などは隠し、サーバーのファイルを一覧できてしまうようなものは危ないので無効にしておきましょう。


  • ServerSignature on → ServerSignature off
  • <Directory "/var/www/html">の
    • Options -Indexes FollowSymLinks → Options -Indexes FollowSymLinks


■ulimitについて

ServerLimitとMaxClientsを引き上げたときは、ulimitも確認して、増やしておきましょう。引き上げ方はいろいろあるので、Google先生にお尋ねください。

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 104448
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 104448 ←ここがポイント
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
$