kstm-su / ictsc_2020_kstm

0 stars 0 forks source link

まだだ,まだ終わらんよ #11

Closed ritsuxis closed 3 years ago

ritsuxis commented 3 years ago

概要

ベテランエンジニアの虎魂くんはWEBサーバの運用を行っていました. ある日,記憶から消えかけていたような昔のプロジェクトのお客さんから電話がありました.

どうやらWEBサーバにアクセスするとエラーページが表示されるようです. 原因の理由と解決方法を回答してください.

前提条件

WEBページのデータのバックアップはない.
WEBページの公開パスなどの変更は可能.

初期状態

手元のPCから $ curl 192.168.11.1 をしてもエラーコードが帰ってくる.

終了状態

Webサーバーの復旧ができている.
手元のPCから $ curl 192.168.11.1 をするとステータスコード200のレスポンスが返ってくる.

接続情報

VM名 ホスト名 ユーザ パスワード
Webサーバ 192.168.11.1 user ictsc2020
ritsuxis commented 3 years ago

curl 192.168.11.1 で403が返ってくる

ritsuxis commented 3 years ago

/var/log/nginx/error.logにて 2021/03/06 11:19:14 [error] 647#647: *3 directory index of "/mnt/data/" is forbidden, client: 192.168.11.1, server: _, request: "GET / HTTP/1.1", host: "192.168.11.1"

koba1t commented 3 years ago

今回の原因は /dev/sdb にアタッチされていのディスクのパーティションテーブルの情報が壊れており、/mnt/data へのマウントが失敗していることが原因でした。

aptでtestdiskをインストールし、 /dev/sdb のパーティションテーブルを復旧した後、再度マウントすることで /mnt/data/index.html へのアクセスが可能になり、nginxが正しいページを表示するようになりました。

user@web:~$ curl 192.168.11.1
<!DOCTYPE html>
<html lang="ja">
        <head>
                <meta charset="utf-8" />
                <link rel="stylesheet"  href="style.css">
                <title>タイトル</title>
                <script
                          src="https://code.jquery.com/jquery-3.3.1.min.js"
                            integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
                              crossorigin="anonymous"></script>
        </head>
        <body>
                <main>
                        <p>ICTSC WEB!!!</p>
                </main>
        <script>
                $(function(){
                });
        </script>
        </body>
</html>