GCPで自分のホームページをつくろう回
なぜ?
自分でWebサーバーを立ち上げてWebサイトを作って運用することでインターネット、Webに関する基礎知識が得られる
必要なもの
ノートPC
クレジットカード
必要な知識
AWSではなくGCPを使う理由
手順
これをやっておかないともしアカウントが乗っ取られたらGCP破産する yuiseki.net みたいなやつ
ドメイン名はとても重要なのでよく考えて決めたほうがいい
ドメイン名は一度決めたら変えられない
変えてもいいけど他のサイトからのリンクなどが全部リンク切れになる
長く使うほど他のサイトからたくさんリンクされてGoogleで上位に表示される
長く使い続ける覚悟が必要
ドメイン名は維持費がかかる
HTTPSしか使えないドメイン名があるので要注意
ドメイン名の料金に加えて、SSL証明書の料金や維持・更新コストも考慮する必要がある!!!!
この記事ではLet's Encrypt以外の方法は説明しないので自力で調べられる人だけHTTPS縛りのドメインにチャレンジしてください .tk/.ml/.ga/.cf/.gq なら無料.iconで取得可能らしい
これらのgTLDは専用のドメインレジストラで購入する必要がある
基本的に英語になると覚悟して下さい
将来的に結局管理がだるいことになる予感がするのであまりオススメしない ドメイン名は様々な設定をするためにこまめに管理作業をする必要がある
使いやすいサービスで買ったほうがいい
一番オススメなのはGoogle Domains
VMへログイン後の作業
Ubuntuのパッケージの更新
sudo apt update
sudo apt upgrade -y
sudo apt install nginx
nginxが起動したことを確認する
sudo systemctl status nginx
注意点:ブラウザによって表示されない場合があり、chromeで開くことを推奨
httpsだと表示されないので注意
https://gyazo.com/b8ad83e05a7ee5ea058c20c50d14d11d
https://gyazo.com/cda9fbb2277816e8d88adba745a4b3ef
IPアドレスとドメイン名を結びつける
Aレコードは、あるドメイン名とIPアドレスを結びつけるもの
CNAMEは、あるドメイン名を別のドメイン名と結びつけるもの
その別のドメイン名がIPアドレスであってもまあよかったりする
選べる場合はAレコードにするべき
ドメイン名でnginxのwelcomeが表示されることを確認する
しばらく時間が掛かる
その後
VMにSSHして、githubからcloneする
cd ~
git clone https://github.com/yuiseki/yuiseki-net
sudo vim /etc/nginx/sites-available/defaultでvimを起動してnginxの設定を書き換える
:set numberで行番号表示
41行目のroot /var/www/htmlを、root /home/yuiseki/yuiseki-netに書き換える
sudo systemctl restart nginxで再起動する
SSLに対応する場合→できてない
ToDo
http:// ではじまるURLは、通信の内容が暗号化されていないので盗聴可能
https:// ではじまるURLは、通信の内容が暗号化されている
SSLによる暗号化を実現するためには、SSL証明書というものが必要 certbotをインストール
sudo apt install certbot
certbot certonly --nginx -d yuiseki.net
わからない点
certbot certonly --nginx -d yuiseki.netを打ち込んでも、The following error was encountered:Errno 13 Permission denied: '/var/log/letsencrypt'Either run as root, or set --config-dir, --work-dir, and --logs-dir to writeable paths. と出る
原因:
解決法:sudo certbot certonly --nginx -d yuiseki.net
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Could not choose appropriate plugin: The requested nginx plugin does not appear to be installed The requested nginx plugin does not appear to be installed
解決法:
sudo add-apt-repository -r ppa:certbot/certbot
sudo apt-get update
sudo apt install python3-certbot-nginx
E: Package 'python-certbot-nginx' has no installation candidate
定期的に証明書を更新するように設定
sudo systemctl status certbot.timer
nginxでhttpでリクエストが来たらhttpsにリダイレクトするように設定 サブドメインを設定する
crisis.yuiseki.net みたいなやつ