LoginSignup
2
2

More than 3 years have passed since last update.

VPSを借りる [VPS、SSH、Nginx] #1

Last updated at Posted at 2020-10-03

VPSを借りて、勉強する

注意:
筆者はLinux経験が半年程度の状態から、この記事で紹介する作業をスタートしました。
記載内容については、可能な範囲で精査しておりますが、正確性を保証するものではありません。その点について、ご理解いただけますようよろしくお願いたします。

VPS

いくつか比較検討しましたが、KAGOYA JAPANのVPSを採用しました。

インスタンス(KVM)の料金
※KVMの特長

CPU 日額 月額上限 初期費用 SSD メモリー
1コア 24円 660円 無料 20GB 1GB
2コア 40円 1100円 無料 50GB 2GB

・スナップショット(バックアップ)の料金

保存容量 日額
10GB 4.4円

勉強中はインスタンスを稼働させ、それ以外の時はスナップショットを取って、インスタンスを削除していました。

・インスタンス

・はじめに
・インスタンス作成
・インスタンス削除
・専用コンソール(非SSH)

・スナップショット

・はじめに
・スナップショット保存
・スナップショットからインスタンス作成
・スナップショット削除

環境構築

1. インスタンス作成

※「1Core/1GB(24円/日) + CentOS 8 64bit」を選択しました。
image.png

2. SSHでログイン

ターミナルソフトは「RLogin」を使用しました。
image.png
※SSH認証鍵は、インスタンス作成時にダウンロードした「ログイン用認証キー」を選択しました。

3. 全体アップデート

dnf update

4. リブート

reboot

5.「Failed to set locale, defaulting to C.UTF-8」が出ないようにする

image.png

dnf install langpacks-en

6. SELinux の有効化

cp -p /etc/selinux/config /etc/selinux/config.origin
sed -i -e "s/^SELINUX=disabled/SELINUX=enforcing/g" /etc/selinux/config
diff -u /etc/selinux/config.origin /etc/selinux/config

7. リブート

reboot

8. ユーザー追加

NAME=yourname
PASSWARD=yourpass

# ADD USER
useradd -m $NAME
echo $PASSWARD | passwd --stdin $NAME
usermod -aG wheel $NAME

# PUBLIC KEY
mkdir /home/$NAME/.ssh/
cat ~/.ssh/authorized_keys > /home/$NAME/.ssh/authorized_keys
chmod 600 /home/$NAME/.ssh/authorized_keys
chown $NAME:$NAME /home/$NAME/.ssh/authorized_keys

# PAM
cp -p /etc/pam.d/su /etc/pam.d/su.origin
sed -i -e "s/^#auth\s.*required\s.*pam_wheel.so use_uid/auth            required        pam_wheel.so root_only/g" /etc/pam.d/su
diff -u /etc/pam.d/su.origin /etc/pam.d/su

9. SSHポート変更

PORT=55551

dnf install policycoreutils-python-utils

semanage port --add --type ssh_port_t --proto tcp $PORT

cp -p /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml
sed -i -e "s/^  <port protocol=\"tcp\" port=\"22\"\/>/  <port protocol=\"tcp\" port=\"$PORT\"\/>/g" /etc/firewalld/services/ssh.xml
diff -u /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml

firewall-cmd --reload

cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.origin
sed -i -e "s/^#Port 22/#Port 22\nPort $PORT\n/g" /etc/ssh/sshd_config
sed -i -e "s/^PermitRootLogin without-password/PermitRootLogin forced-commands-only/g" /etc/ssh/sshd_config
diff -u /etc/ssh/sshd_config /etc/ssh/sshd_config.origin

systemctl restart sshd

10. 追加ユーザーで再ログイン

image.png

11. Nginxインストール

※How to Install Nginx on CentOS 8

sudo dnf install @nginx
sudo systemctl enable nginx
sudo systemctl start nginx
systemctl status nginx
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

image.png

12. ドメイン登録

※他社管理ドメインの登録
image.png
image.png

13. ドメイン設定

※How to Set Up Nginx Server Blocks on CentOS 8

DOMAIN=yourdomain

sudo mkdir -p /var/www/$DOMAIN/public_html

sudo tee /var/www/$DOMAIN/public_html/index.html << EOF
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to $DOMAIN</title>
  </head>
  <body>
    <h1>Success! $DOMAIN home page!</h1>
  </body>
</html>
EOF

sudo chown -R nginx: /var/www/$DOMAIN
sudo restorecon -RF /var/www/$DOMAIN/public_html/

sudo tee /etc/nginx/conf.d/$DOMAIN.conf << EOF
server {
    listen 80;
    listen [::]:80;

    root /var/www/$DOMAIN/public_html;

    index index.html;

    server_name $DOMAIN www.$DOMAIN;

    access_log /var/log/nginx/$DOMAIN.access.log;
    error_log /var/log/nginx/$DOMAIN.error.log;

    location / {
        try_files \$uri \$uri/ =404;
    }
}
EOF

sudo nginx -t

sudo systemctl restart nginx

image.png

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2