投稿

GCEのapt upgradeが重いのでman-dbを消した

 GCEでapt upgradeするとやけに重い。 どうやらストレージが遅いせいでman-dbの更新に時間がかかるようだ。 nohup sudo apt upgrade -y & で抜けてしまってもよいが、ちょっと不安だ。 なので sudo apt remove --purge man-db した。 相変わらず重いけど、前よりはマシになったと思う。

nginx、再び

これまでの設定でhttps化できているのだけど リファラを使ってクロスサイトかどうかのチェックをすると 「https:// -> http://だからクロスサイトだぜ危ないぜ!」 ということになる。 そうならないためには server {         server_name www.x7th.com;         location / {                 proxy_pass http://localhost:8080/;                 proxy_set_header Host $http_host;                 proxy_redirect http:// https://;         } } という感じでなきゃいけない。 もしかすると                 proxy_pass http://127.0.0.1:8080; のほうが間違いのない書き方かもしれない。 そして                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; はとりあえず無しにしておく。

certbot

 今週の山場! Let's Encryptで証明書貰ってhttpsでアクセスできるようにしよう。 とりあえず443を開ける これはGCPのコンソールからやる。 やり方を調べる https://letsencrypt.org/ に行ってrecommendに従って https://certbot.eff.org/ に行く。 nginx on debian 10 を選んであとは指示に従う。 実際にcertbotを入れてみる 1. SSH into the server(SSHで入れ) 入りました。 2. Install snapd(snapd入れろ) sudo apt update sudo apt install snapd 3. Ensure that your version of snapd is up to date(snapdを最新にしとけ) sudo snap install core; sudo snap refresh core 4. Remove certbot-auto and any Certbot OS packages(入ってるcertbotを取り除け) まっさらから始めたので関係ありません。 5. Install Certbot(certbot入れろ) sudo snap install --classic certbot 6. Prepare the Certbot command(certbotコマンドの準備) sudo ln -s /snap/bin/certbot /usr/bin/certbot 7. Choose how you'd like to run Certbot(やり方選べ) 証明書貰うだけというのも可能なようだけど、せっかくだからnginxの設定までやってもらいましょう。 sudo certbot --nginx 色々聞かれる。  emailアドレス設定して  ライセンスにはY  EFFのメールはN  ドメイン名を入力。 そしたら「server_nameがないじゃん!」って怒られた。 /etc/nginx/conf.d/tomcat.conf にserver_nameを入れて nginx -s reload ちゃんと設定してあるとドメインが表示されて 「leave input blank to sele

springsole

とりあえず更新 SSHで入って毎度の sudo apt update sudo apt upgrade (インスタンスがしょぼいせいかgcp-sdkが重いのかやたら時間がかかる) とりあえず8080で動くものを動かす JDK, Maven, Git sudo apt install openjdk-11-jdk (ヘッドレスとかjreとかでもいいがjdkを入れておく) curl https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz | tar xzf - echo 'export PATH=$PATH:~/apache-maven-3.8.4/bin' >> .bashrc sudo apt install git 8080で動くもの ここでSSHのターミナルをもういっこ作って git clone https://github.com/tshibata/springsole.git cd springsole mvn spring-boot:run & nginxの設定 /etc/nginx/conf.d/tomcat.conf  を server { listen 80; location / { proxy_pass http://localhost:8080/; } } とかにして sudo rm /etc/nginx/sites-enabled/default sudo nginx -s reload すれば動かねえか?動いたっぽい。 (追記:でもserver_nameが無いからcertbotに怒られるんだぜ)

静的IPを設定

しかたないので有料で静的IPを設定した。 手順の確認も兼ねてインスタンスも作り直し。 静的アドレスの予約  名前: 適当  スタンダード  IPv4  リージョン: us-west1  接続先:なし インスタンスの作成 名前: instance-1(デフォルトのままでいいや) リージョン: us-west1  us-west1-b タイプ: e2-micro OS:  Debian 10(buster)  Debian 11(bullseye) ブートディスク: 標準永続ディスク 30 GB ファイアーウォール: HTTP, HTTPS(後からでも開けられるけど開けとく)  ネットワーキング   ネットワークインターフェイス    外部IP(上で決めた名前を設定) サーバの更新&設定 SSHで中に入って sudo apt update sudo apt upgrade sudo apt install nginx DNS設定 Google Domainsに行って DNS  www  タイプA  取得したIPv4の値を設定 設定した直後にはもう http://www.x7th.com/ にアクセスできた。 最近はそういうもんなのか。

始めてみよう

最近はいろいろ安く試せるようになっているようなので自分でサービスを作ってみよう。 月10ドルまでで何か面白いものを作れたらいいなと思う。 とりあえずGCPにプロジェクト作って Google Domainsでドメイン取って(月1ドルだ) GCEに静的アドレスは割り当てるのは有料になったことを知った。←いまここ