情報システム管理 Webサーバ
Download
Report
Transcript 情報システム管理 Webサーバ
情報システム管理
10. Webサーバ
水野嘉明
本日の内容
1. WWW
2. 動的なWebページの生成
3. Webサーバの設定
4. Webサーバの監視
2
1. WWW
1.1
1.2
1.3
1.4
1.5
1.6
Webの仕組み
URLについて
HTMLについて
httpについて
ブラウザ
Webの歴史
3
1. WWW
World
Wide Web
WebサーバにあるHTML文書を
ネットワークを通して閲覧するシス
テム
インターネットで、最も多く利用さ
れる技術
4
1.1 Webの仕組
Webページが表示される仕組
① 参照したいファイ
ルのURLを指定
Webサーバ
クライアント
インターネット
③ ファイルをブラ ② 指定されたフ
ウザで表示
ァイルを転送
5
1.2 URLについて
インターネット上のリソース(情報や
サービス)の場所を指定するための
記述形式
URLの一般形式
(スキーム名):(スキームごとに定められた形式)
6
1.2 URLについて
Web(http)の場合
http://<user>:<password>@<host>:<port>/<url-path>
スキーム名と<host>以外は省略可
(例)
http://www2.toyo.ac.jp/~y-mizuno/index.html
スキーム名
ホスト名
パス名
7
1.2 URLについて
スキーム名
リソースの種類
http, ftp, mailto, telnet, file など
ホスト名
ホスト名+ドメイン名
(IPアドレスも可)
パス名 (省略可)
ディレクトリ名+ファイル名
8
1.3 HTMLについて
Hyper
Text Markup Language
文書の一部をタグ と呼ばれる特別な
文字列で囲う
文書の構造や修飾情報を記述
画像や音声、動画、ハイパーリンクを
埋め込むことが出来る
W3C という団体が標準化
9
1.3 HTMLについて
HTMLの例
10
1.4 http について
Hypertext
Transfer Protocol
WebブラウザとWebサーバの間で用
いられる通信プロトコル
主にHTMLテキストを送受信
画像や音声、その他のファイルも
伝送できる
デフォルトでは ポート番号80 を使用
11
1.5 ブラウザ
ブラウザ
http文書を閲覧するためのソフト
Internet Explorer
(マイクロソフト製、Windowsに付属)
Firefox (フリー)
Opera (フリー)
Google Chrome (フリー)
など
12
1.6 Webの歴史
1990
CERN(欧州原子核研究機構)
のバーナーズ=リーが最初のWeb
ページを作成
1992 日本最初のWebサイト
(文部省高エネルギー加速器研究機構)
1993
NCSA(米国立スーパーコン
ピュータ応用研究所)にて、NCSA
Mozaic 開発
13
1.6 Webの歴史
1993
WWWを無料で誰にでも開放
1994 Netscape Navigator
1995~2000 Netscape Navigator
と Internet Explorer 間で、ブラウザ
戦争
1998 Google登場
2002 Firefox 開発
14
2. 動的なWebページの生成
2.1 動的なページ生成の仕組
2.2 サーバサイドプログラミング
2.3 クライアントサイドプログラミング
15
2. 動的なWebページの生成
初期の/単純な
Webは、HTMLで
作成されたページを表示するだけ
動的にWebページを生成
入力したデータ、その他の条件に
より内容が変わる
16
2.1 動的なページ生成の仕組
ページ生成の仕組
(1)
アプリケー
ション
Webサーバ
Webサーバが、要求に従ってアプリ
ケーションを呼び出し、アプリが
HTMLファイルを生成する
17
2.1 動的なページ生成の仕組
このタイプには
CGI
SSI
JSP/JavaServlet
ASP/ASP.NET
などがある
18
2.1 動的なページ生成の仕組
ページ生成の仕組
(2)
スクリプト
Webサーバ
HTMLの記述に従って、ブラウザが
スクリプトを実行する。
実行結果が画面に反映される
19
2.1 動的なページ生成の仕組
このタイプには
JavaScript
AcitveX コントロール
などがある
クライアント側で実行するため、セ
キュリティ上問題となることが多い
20
2.2 サーバサイドプログラミング
CGI
(Common Gateway Interface)
Webサーバ上でユーザプログラム
を動かすための仕組み・仕様
CGIプログラムは、Perlでかかれ
ることが多い
最近は、Python、Rubyなども
プログラムの出力が、Webのデー
タ (HTMLや画像など)
21
2.2 サーバサイドプログラミング
CGI プログラムは、サーバで実行
作り方が悪いと、サーバの負荷が
大きくなる
一般のプロバイダでは、ユーザに
は作らせないことが多い
22
2.2 サーバサイドプログラミング
CGI の主な用途
掲示板
アクセスカウンタ
Wiki
Blogシステム
チャット
アンケートフォーム
など
23
2.2 サーバサイドプログラミング
JavaServlet
/ JSP
Javaを用いて、動的にHTMLを生
成する
CGIよりもパフォーマンスを向上
厳密には、JavaServletと JSPは
異なる
組み合わせて使うのが一般的な
ので、混同されている
24
2.2 サーバサイドプログラミング
ASP
/ ASP.NET
HTMLと、VBScriptやJavaScript
などのスクリプト言語の組合わせ
マイクロソフトが開発
ASPを動作させるためのWeb
サーバには、IIS (MSのWeb
サーバプログラム)が用いられる
25
2.3 クライアントサイドプログラミング
JavaScript
スクリプト言語
サーバ側ではなく、クライアント側
(Webブラウザ上)で動作する
HTMLの動的書き換え
入力フォームの自動補完 など
プログラミング言語の Javaとは、
名前や文法が似ているが、別物
26
2.3 クライアントサイドプログラミング
Ajax
ブラウザ上のJavaScriptとサーバと
が非同期の通信をし,動的に画面を
再描画する仕組み
27
2.3 クライアントサイドプログラミング
クライアント
ブラウザ
ユーザではなく
JavaScriptが
通信する
サーバ
パラメータ
Java
Script
結果
28
3. Webサーバの設定
3.1
3.2
3.3
3.4
3.5
Apacheのインストール
Apacheの特徴
Apacheの設定
.htaccessによるアクセスの制限
ユーザ認証
29
3. Webサーバの設定
Apache
HTTP Server
UNIXで一般的に用いられている
Webサーバ
オープンソースで開発されている
Apacheソフトウェア財団
30
3.1 Apache のインストール
最初からインストールされていること
が多い
インストール、アップデート等につ
いては
『アプリケーションのインストール』
を参照
自動起動するには
update-rc.d / chkconfig
31
3.1 Apache のインストール
バージョン
1.3系
安定志向。十分「枯れて」いる
2.0系
新しい機能を使いつつ安定志向
2.2系
最新の機能を利用
32
3.2 Apache の特徴
モジュール
による機能追加
Apacheの機能を拡張するための
パーツ
Apache
Core(核)
モジュール モジュール
モジュール
組込み・取り
外しが可能
33
3.2 Apache の特徴
Apache標準の主なモジュール
モジュール名
役割
mod_auth_basic.so
ユーザ認証
mod_authz_host.so
アクセス制限
mod_cgi.so
CGIの利用
mod_dav.so
WebDAVの利用
mod_log_config.so
ログ機能
mod_alias.so
エイリアス機能
34
3.3 Apache の設定
メインの設定ファイルは、OSやディ
ストリビューションにより異なる
KNOPPIX
/etc/apache2/apache2.conf
Fedora (RedHat系)
/etc/httpd/conf/httpd.conf
FreeBSD
/usr/local/etc/apache/httpd.conf
35
3.3 Apache の設定
設定の一部は、別ファイルにしてお
いて Include文で読み込む
(Apache 2.2系から)
設定ファイルは、テキストファイル
ディレクティブ と呼ばれる命令を、1
行に一つずつ記述する
36
3.3 Apache の設定
トップページ
普通は、ファイル名を指定しなくて
もトップページが表示される
そのためのファイル名を指定
例) http://www.toyo.ac.jp/
ファイル指定がないが、
index.html が表示される
DirectoryIndex
index.html index.htm
37
3.3 Apache の設定
ドキュメントルート
例えば
http://www.foo.co.jp/bar.html
にアクセスすると、
/var/www/bar.html
が表示されるようになっている
この、URLによるアクセスの起点と
なるディレクトリを ドキュメントルー
ト と呼ぶ
38
3.3 Apache の設定
省略される
ことも多い
URL
http://www.foo.co.jp/ファイル名
ファイル名(パス名)の先頭に
ドキュメントルートを加える
ファイル名
/var/www/ファイル名
ドキュメントルート
39
3.3 Apache の設定
ドキュメントルートの設定
DocumentRoot
"/var/www"
基本的には、このディレクトリの
下に公開するファイルを置く
シンボリックリンクやエイリアスは
利用可
40
3.3 Apache の設定
サーバ名
ServerName www.toyo.ac.jp:80
サーバ名として、DNSに登録され
た名前(または IPアドレス)を記述
する
:80 は、ポ-ト番号
41
3.3 Apache の設定
ディレクトリ単位にルールを設定
<Directory
/var/www/hoo/bar/ >
このディレクトリのルール
</Directory>
42
3.3 Apache の設定
アクセス制限
ディレクトリ単位でアクセス制限を
かける
設定方法は二通り
設定ファイル (httpd.conf 等)に
記述
対象ディレクトリに、 .htaccessと
いう設定ファイルを置く (後述)
43
3.3 Apache の設定
まず、どのディレクトリに対する設
定なのかを指定する
<Directory
ディレクトリパス>
ディレクトリのアクセス制御ルール
</Directory>
44
3.3 Apache の設定
アクセスを許可する一覧
アクセス許可リスト
Allow from
拒否する一覧
Deny from
アクセス拒否リスト
Allow/Deny の評価順
Order
Order
Allow,Deny
Deny,Allow
または
45
3.3 Apache の設定
(例)
<Directory
/var/www/mypage>
Order
Deny,Allow
Allow from 133.79.0.0/255.255.0.0
Deny from All
</Directory>
東洋大学(133.79.x.y)からのみ、ア
クセス可能
46
3.3 Apache の設定
CGIの使用
ScriptAlias /cgi-bin/ "/usr/lib/cgi-bin/"
ディレクトリ /usr/lib/cgi-bin にCGI
プログラムを置き
http://サーバ名/cgi-bin/ファイル名
というURLで CGIが使用できる
47
3.3 Apache の設定
ユーザディレクトリでの CGI使用
AddHandler
cgi-script
.cgi
この拡張子のファイルがCGIファイル
<Directory
ディレクトリパス>
:
Options
ExecCGI
</Directory>
このディレクトリで CGIの実行を許可
48
3.4 .htaccessによるアクセス制限
アクセス制限をかけるディレクトリ
に .htaccess というファイルを置いて
おく
httpd.conf (apache2.conf) を修正
<Directory
ディレクトリパス>
AllowOverride All
</Directory>
.htaccessによる設定の上書きを許可
49
3.4 .htaccessによるアクセス制限
.htaccess
に、アクセス制御ルールを
記述する
(例)
Order
Deny,Allow
Allow from 133.79.0.0/255.255.0.0
Deny from All
東洋大学(133.79.x.y)からのみ、ア
クセス可能
50
3.5 ユーザ認証
ユーザ名とパスワードにより、特定の
ユーザのみ閲覧できるように制限で
きる
パスワードファイルを作成する
(OSのユーザ/パスワードとは別)
httpd.conf (apache2.conf) また
は .htaccess に記述
51
3.5 ユーザ認証
パスワードファイルの作成
ファイルの作成は htpasswd コマ
ンドによる
$ htpasswd -c .htpasswd toyo
New password: (パスワードを入力)
Re-type new password: (再度入力)
Adding password for user toyo
52
3.5 ユーザ認証
htpasswdコマンドにて .htpasswd
ファイルが出来るので、適当なディ
レクトリにコピーする
(クライアントからはアクセスできな
いディレクトリに置く)
所有者とパーミッションを変更する
$ chown apache:apache .htpasswd
$ chmod 600 .htpasswd
53
3.5 ユーザ認証
(.htpasswdファイルの例)
toyo:NbNKNUm38HWwc
ユーザ名
暗号化されたパスワード
54
3.5 ユーザ認証
によるパスワード認証
httpd.conf に以下を記述
httpd.conf
<Directory
ディレクトリパス>
:
AuthUserFile /etc/httpd/conf/.htpasswd
AuthType
Basic
AuthName
"My page"
Require
user toyo
</Directory>
55
3.5 ユーザ認証
によるパスワード認証
.htaccess に以下を記述
.htaccess
AuthUserFile
AuthType
AuthName
Require
/etc/httpd/conf/.htpasswd
Basic
"My page"
user toyo
パスワードファイルの場所
ユーザ名を複数並べることも可
56
4. Webサーバの監視
4.1 アクセスログの解析
4.2 サーバ資源の監視
57
4. Webサーバの監視
Webサーバの資源は有限
画像ファイル等が大きすぎる
効率の悪いスクリプトを実行
アクセスが集中
レスポンスが悪くなる
Webサーバの監視が必要
58
4.1 アクセスログの解析
アクセスログ解析
Appacheのアクセスログは
/var/log/httpd/access_log 等
以下のようなデータを調べる
時間帯によるアクセスの傾向や
アクセス元の情報
ページ毎のアクセス数
転送サイズ
など
59
4.1 アクセスログの解析
ログ解析ツール
webalizer
AWStats
どちらも、ログを調査し、Webペー
ジとして見える(つまりHTMLフォー
マットの)レポートを作成する
60
4.1 アクセスログの解析
(webalizer の出力例)
61
4.2 サーバ資源の監視
サーバ資源の監視
次のような項目をモニタリングする
CPU使用率
ネットワークの転送量
ディスクの使用量
など
62
4.2 サーバ資源の監視
一定時間毎にモニタリングし、グラ
フ化するツール
MRTG
Munin
(MRTGの出力例)
63
お疲れ様でした