サーバー内の特定ディレクトリを公開
Webサーバーの役割を一言で言うと、サーバー内の特定のディレクトリを公開して、ブラウザ等でアクセスできるようにするのがWebサーバーです。
視覚的に分かりやすいようにMacのFinderの画像で説明します。
左サイドのユーザー【neo】の中には、
- アプリケーション
- ダウンロード
- デスクトップ
- パブリック
- ピクチャー
- ミュージック
- ムービー
- 書類
というフォルダーがあることが分かります。
例えば、この中の【ダウンロード】フォルダだけを一般に公開したいという時にWebサーバーを利用します(※ macOSで実際にWebサーバーを提供する訳ではありません)。
MacやWindowsのようなGUI(Graphical User Interface)ではフォルダ、CUI(Character User Interface)ではディレクトリと言います。
ドキュメントルート
Webで公開するディレクトリのことをドキュメントルート(Document Root)と言い、Webサイトを構成するHTML、CSS、JavaScript、画像などのファイルを置きます。
ドキュメントルートは、Webサーバーの設定ファイルで指定します。
ApacheというWebサーバーでは以下のように設定します。
DocumentRoot "/home/www.superusers.jp/public_html"
アクセス制限の機能
一般に公開しているドキュメントルートの中であっても、
一部のディレクトリやファイルは伏せておきたいというニーズもあります。
どのようにしてアクセス制限をかけるのか軽く説明します。
IPアドレスによるアクセス制限
例えば、WordPressのダッシュボードを例に挙げると、誰にでもアクセスされてしまうと困るので、以下のようにIPアドレスによるアクセス制限をかけることが多いです。
<Files wp-login.php>
Require ip xxx.xxx.xxx.xxx
</Files>
xxx.xxx.xxx.xxx の箇所にアクセスを許可したいグローバルIPアドレスを記述します。
IDとPasswordによるBasic認証
WebサーバーにはBasic認証というIDとPasswordによる認証機能も備わっています。
<Directory "/home/www.superusers.jp/public_html/secret">
AuthType Basic
AuthName "auth"
AuthUserFile /home/www.superusers.jp/.htpasswd
Require valid-user
</Directory>
Basic認証を適用したいディレクトリを1行目で指定して、IDとPasswordを格納したパスワードファイルを4行目で指定しています。
パスワードファイルはApache付属のhtpasswdを使って作成します。
コメント