WODEN 仮 想 サーバの 作 成 と Nginx の 設 定 2016/02/02 更 新 香 川 研 究 室
内 容 1. 仮 想 サーバの 新 規 作 成... 2 2. 仮 想 サーバに 静 的 IP を 割 り 振 る... 3 3. 仮 想 サーバにコンソールでログインできるようにする... 5 4. Nginx の 設 定... 6 マニュアル 中 のコマンドの 先 頭 に # がついているならそれはスーパーユーザ 状 態 であ る su でスーパーユーザになってから 作 業 をすること
1. 仮 想 サーバの 新 規 作 成 仮 想 サーバの 新 規 作 成 を 行 う GUI による 作 成 の 説 明 のみを 行 うので CUI で 仮 想 サーバ を 作 成 したい 場 合 各 自 調 べること (1) woden に 各 ユーザ 名 でログインし アプリケーション > システムツール > 仮 想 マシ ンマネージャ を 開 く その 際 root のパスワードを 求 められるので 入 力 する (2) localhost (QEMU) を 右 クリックし 新 規 をクリックする (3) 仮 想 マシン 作 成 ウィザードが 開 くので それに 従 って 仮 想 マシンを 作 成 する (4) まず 仮 想 マシンの 名 前 とインストール 方 法 を 決 める 名 前 は 適 当 に 決 め インストー ル 方 法 は ローカルのインストールメディア (ISO イメージまたは CD-ROM ドライ ブ) を 選 択 する 選 択 したら 進 む を 押 す (5) インストールメディアの 場 所 は ISO イメージを 使 用 を 選 択 し 用 意 した ISO イメージファイルの 場 所 を 参 照 する ISO イメージファイルのダウンロードの 仕 方 は 省 略 する 今 回 は 例 として CentOS 7 をインストールする OS の 種 類 とバージョン はインストールする OS に 合 わせて 変 える 完 了 したら 進 む を 押 す (6) メモリと CPU の 設 定 は 必 要 に 応 じて 変 える 何 もなければそのまま 進 む を 押 す (7) ディスク 容 量 を 設 定 する 何 もなければそのまま 進 む を 押 す (ディスク 容 量 は 後 で 変 更 できる) (8) インストール 確 認 画 面 になるので 問 題 がなければ 完 了 を 押 し インストールをす る インストール 完 了 後 の 初 期 設 定 は 省 略 する
2. 仮 想 サーバに 静 的 IP を 割 り 振 る 例 に 書 かれている IP アドレスと MAC アドレスは 全 てデタラメな 値 なので 仮 想 サー バの IP アドレスや MAC アドレスは ifconfig とかで 確 認 すること (1) 以 下 の 作 業 は woden 側 の root で 行 う 以 下 のコマンドを 実 行 する # virsh net-edit default (2) Vim が 開 き default ネットワークの 設 定 が 編 集 できるようになる <network> <name>default</name> <uuid>abcdefgh-ijkl-mnop-qrst-uvwxyz0123456789</uuid> <forward mode= nat /> <bridge name= virbr0 stp= on delay= 0 /> <mac address= AB:CD:EF:01:12:45 /> <ip address= 192.168.111.1 netmask= 255.255.255.0 > <dhcp> <range start= 192.168.111.2 end= 192.168.111.124 /> <host mac= 55:55:55:55:55:55 name= vm ip= 192.168.111.125 /> </dhcp> </ip> </network> <dhcp>タグの 中 に<host>タグを 追 加 する mac には 作 成 した 仮 想 マシンの 物 理 アドレ スを name には 仮 想 マシンの 名 前 を(なくてもよい) ip には 設 定 したい 静 的 IP アド レスを 記 述 する IP アドレスは 他 の 仮 想 サーバの IP アドレスと 被 らないようにする 例 として 以 下 の default 設 定 ファイルに 新 しい 仮 想 マシン example を 追 加 する example の 物 理 アドレスは 12:34:56:78:9A:BC 設 定 したい IP アドレスを 192.168.111.126 とする ちなみに Vim は i で 挿 入 モード( 入 力 可 能 状 態 )になり Esc でノーマルモードに 戻 る ノーマルモードの 状 態 で Shift+zz(z2 回 ) と 押 すと 上 書 きできる <network> <name>default</name> <uuid>abcdefgh-ijkl-mnop-qrst-uvwxyz0123456789</uuid> <forward mode= nat /> <bridge name= virbr0 stp= on delay= 0 /> <mac address= AB:CD:EF:01:12:45 /> <ip address= 192.168.111.1 netmask= 255.255.255.0 > <dhcp> <range start= 192.168.111.2 end= 192.168.111.124 /> <host mac= 55:55:55:55:55:55 name= vm ip= 192.168.111.125 /> <host mac= 12:34:56:78:9A:BC name= example ip= 192.168.111.126 /> </dhcp> </ip> </network>
(3) default ネットワークのリセットを 行 う 以 下 のコマンドを 実 行 する # virsh net-destroy default # virsh net-start default (4) iptables をセーブする 以 下 のコマンドを 実 行 する # iptables-save # service iptables save (5) iptables をリセットする # service iptables restart (6) ここからの 作 業 は 仮 想 サーバ 上 で 行 う 仮 想 サーバを 立 ち 上 げ ネットワークの 設 定 などで IP アドレスを 固 定 する デフォルトゲートウェイと DNS は woden 側 root で virsh net-edit default と 入 力 すると 確 認 できるネットワーク 設 定 の 以 下 の 赤 い 部 分 の IP アドレスを 指 定 する <network> <name>default</name> <uuid>abcdefgh-ijkl-mnop-qrst-uvwxyz0123456789</uuid> <forward mode= nat /> <bridge name= virbr0 stp= on delay= 0 /> <mac address= AB:CD:EF:01:12:45 /> <ip address= 192.168.111.1 netmask= 255.255.255.0 > <dhcp> <range start= 192.168.111.2 end= 192.168.111.124 /> <host mac= 55:55:55:55:55:55 name= vm ip= 192.168.111.125 /> </dhcp> </ip> </network> (7) 仮 想 サーバを 再 起 動 する (8) 再 起 動 後 ブラウザなどで 仮 想 サーバがインターネットに 繋 がっているか 確 認 する 繋 がっていない 場 合 設 定 を 確 認 する 確 認 しても 繋 がらないならばもう 一 度 シャット ダウンして 起 動 してみる それでも 駄 目 なら 他 の 方 法 を 探 す
3. 仮 想 サーバにコンソールでログインできるようにする TeraTerm などで 仮 想 サーバにログインできるよう 設 定 を 行 う ここでは Cent OS 7 を 例 に 挙 げて 説 明 をする 他 の OS は 各 自 で 調 べること (1) 以 下 は 仮 想 サーバ 上 の root で 行 う /etc/default/grub の GRUB_CMDLINE_LINUX を 以 下 のように 変 更 する GRUB_CMDLINE_LINUX= vconsole.keymap=jp106 crashkernel=auto vconsole.font=latarchrheb-sun16 console=tty0 console=ttys0,115200m8r (2) grub 定 義 を 生 成 するため 以 下 のコマンドを 実 行 する # grub2-mkconfig o /boot/grub2/grub.cfg (3) これでコンソールからログインできるようになったはず ここからは 仮 想 サーバ woden 以 外 の PC を 使 う 他 の PC から TeraTerm などを 使 って woden にログインし 仮 想 サーバにコンソール からログインできるか 確 認 する virsh でログインすると 以 下 のような 表 示 がでる (TeraTerm 上 ) # virsh console ( 仮 想 サーバの 名 前 ) ドメイン ( 仮 想 サーバの 名 前 ) に 接 続 しました エスケープ 文 字 は ^] です (4) この 状 態 でエンターキーを 押 すと 仮 想 サーバにログインできる 仮 想 サーバのユーザ 名 とパスワードを 求 められるので 入 力 する 以 下 はコンソールによるログインの 一 例 [root@woden AAA]# virsh console myserver ドメイン myserver に 接 続 しました エスケープ 文 字 は ^] です CentOS Linux 7 (Core) Kernel 3.10.0-229.4.2.el7.x86_64 on an x86_64 myserver login: username パスワード: 最 終 ログイン: Wed May 27 14:28:15 ttys0 上 [username@myserver ~]$
4. Nginx の 設 定 (1) この 作 業 は 仮 想 サーバ 上 で 行 う 仮 想 サーバに Apache や Tomcat などをインストール し ドキュメントルートを 確 認 する Apache であれば locate httpd.conf で 探 せる httpd.conf にドキュメントルートが 記 述 してあり Tomcat であれば Tomcat をインス トールしたディレクトリ 下 の webapps がドキュメントルートとなる (2) ここからの 作 業 は woden 側 の root で 行 う ドキュメントルートを 確 認 したら Nginx の 設 定 を 行 う 以 下 のコマンドを 実 行 し Nginx の 設 定 ファイルを 開 く # vim /etc/nginx/conf.d/default.conf (3) 設 定 ファイルに 黄 色 部 分 を 新 たに 追 加 する (フォルダ 名 )にはドキュメントルート 以 下 の 参 照 するディレクトリの 名 前 を 入 れる server { listen 80 default; server_name woden.eng.kagawa-u.ac.jp; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } location /(フォルダ 名 )/ { proxy_pass http://( 仮 想 サーバの IP アドレス); proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # ( 省 略 )
(4) Apache の 場 合 の 例 を 示 す ( フ ォ ルダ 名 ) を example と す ると Nginx は http://woden.eng.kagawa-u.ac.jp/example という URL のリクエストを 受 けとった 時 IP アドレスで 指 定 された 仮 想 サーバ 上 の /var/www/html/example を 参 照 する (これはドキュメントルートが/var/www/html/だった 場 合 である) location /example/ { proxy_pass http://192.168.111.126; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } (5) Tomcat の 場 合 の 例 を 示 す (フォルダ 名 )を example とし ( 仮 想 サーバの IP アドレ ス ) を 192.168.111.126:8080 と す る と Nginx は http://woden.eng.kagawau.ac.jp/example という URL のリクエストを 受 け 取 った 時 IP アドレスで 指 定 され た 仮 想 サーバ 上 の ~/tomcat/webapps/example を 参 照 する ただし この Tomcat の 例 だとポート 8080 を 開 放 しなければならない location /example/ { proxy_pass http://192.168.111.126:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } (6) Nginx 設 定 ファイルを 書 き 換 えたら Nginx を 再 起 動 する 以 下 のコマンドを 実 行 する # service nginx restart