情報システム管理 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 お疲れ様でした
© Copyright 2024 ExpyDoc