2020年末のサーバ構築
サーバにしていたマシンが故障し、 その影響で当サイトは3週間ほどアクセス不能になりました。
現在、マシンを替えて仮復旧させております。 なお、現在コメントが表示されておりません。 データは存在しますが、 コメント欄用のプログラムの再設定ができていないためです。 後ほど復旧方法を検討します。
環境
- ハードウェア:Raspberry Pi 4 Model Bを使用します。
- 月に1MBも転送しないサイトなので、あまり強いハードウェアは用いません。
- 安定性に問題があれば別の方法を検討します。
- OS:標準のOSであるRaspbian Liteを使用します。
設定手順
SSH接続まで
- NOOBS でインストールしたところから始めます。
- まず、設定をまともに行うために、キーボードを設定します。
raspberrypi Login: pi Password: 〈入力しても見えない〉raspberry pi@raspberrypi:~ $ sudo raspi-config
- メニューで5 Localisation Options→L3 Keyboardと進んで、設定
- パスワードを設定します。
pi@raspberrypi:~ $ passwd Current Password: 〈入力しても見えない〉raspberry New Password: (新しいパスワードを入力) Retype Password: (新しいパスワードを入力)
- SSHサーバを起動します。
pi@raspberrypi:~ $ sudo raspi-config
- メニューで3 Interface Options→P2 SSHと進んで、設定
- IPアドレスを調べておきます
pi@raspberrypi:~ $ ip addr 〈略〉 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 〈略〉 brd ff:ff:ff:ff:ff:ff inet 〈略〉.0.152/24 brd 192.168.0.255 scope global noprefixroute wlan0 valid_lft forever preferred_lft forever 〈略〉
- SSHの公開鍵認証を設定します。
- クライアントの鍵を作成
sakai@myPC ~ % ssh-keygen -t ed25519 -f ~/.ssh/id_raspi (略) Passphrase: (何も入力しない) Retype Passphrase: (何も入力しない) sakai@myPC ~ % cat ~/.ssh/id_raspi.pub ssh-ed25519 〈略〉 sakai@myPC
- サーバに格納
sakai@myPC ~ % ssh pi@〈略〉.0.152 (ここでサーバ証明書の確認画面が出る。本当はサーバの証明書と照合するべきだが今回は忘れていた。) 〈この証明書を受け入れますか? yes/no/[fingerprint]〉: yes pi@raspberrypi:~ $ mkdir .ssh pi@raspberrypi:~ $ vi .ssh/authorized-keys # viでもnanoでもOK 〈上記cat ~/.ssh/id_raspi.pubで読み取った内容を書き込む。保存して終了〉
- サーバのパスワード認証を無効化
sudo vi /etc/ssh/sshd_config
- 次のように設定
PasswordAuthentication no ChallengeResponseAuthentication no # デフォルトでこうなっているはず
- 次のように設定
- クライアントの鍵を作成
基本設定
- IPアドレスを固定します。
pi@raspberrypi:~ $ vi /etc/dhcpcd.conf
- 次のように設定
interface wlan0 static ip_address=〈固定するIPアドレス〉/24 static routers=〈ルータのIPアドレス〉 static domain_name_servers=〈DNSサーバのIPアドレス〉
- 再起動するとIPアドレスが変わるので忘れず追従します。
- 次のように設定
- RAMディスクを使うように設定します。
- (Raspberry Piの記録メディアであるmicroSDカードの劣化を遅らせるため。)
- スワップの無効化
pi@raspberrypi:~ $ systemctl disable dphys-swapfile pi@raspberrypi:~ $ sudo dphys-swapfile swapoff pi@raspberrypi:~ $ sudo rm /var/swap
- RAMディスクの作成
pi@raspberrypi:~ $ vi /etc/fstab
- 次のように設定
# use tmpfs for temporary files tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0 # use tmpfs for log files tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0
- 次のように設定
Webサーバの設定
- インストールします。
pi@raspberrypi:~ $ sudo apt install nginx 〈実行して良いですか[y/N]?〉y
- 設定します。
pi@raspberrypi:~ $ sudo vi /etc/nginx/sites-available/〈設定名(半角英字など)〉
- 次のように設定
# 〈ドメイン名〉 server configuration # server { listen 80; root /var/www/〈設定名〉; index index.html index.htm; server_name 〈ドメイン名〉; }
- 次のように設定
- RAMディスクにログファイル用フォルダを作る設定をします。
pi@raspberrypi:~ $ vi /etc/rc.local
- 次のような処理をexit 0の前に追加
mkdir /var/log/nginx
- 次のような処理をexit 0の前に追加