Webアプリを公開したことがなかったので、以前作ったつらくなったら押すボタンをデプロイしました。
押すと動物の雑学を教えてくれます。
公開するためにやったこと
ログの出力
すごくしょぼいアプリですが、公開するに当たって、アクセスログだけは残すようにしました。
ginの公式のサンプルを参考に実装しました。
Systemdでサービス化
Go言語のアプリをサービス化する方法はいろいろあるらしいですが、今回はSystemdでサービス化しました。
[Unit]
Description = turaibutton
[Service]
User=nginx
Group=nginx
WorkingDirectory= {アプリのパス}
ExecStart= {アプリのパス}
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
nginxの設定
nginxのリバースプロキシの設定を記述します。
server {
listen 80;
listen [::]:80;
server_name turai.it-omurice.tokyo;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
location / {
proxy_pass http://127.0.0.1:8080/;
}
}
詰まったとこ
nginxの設定をしているときに以下のエラーが出てアクセスできませんでした。
failed (13: Permission denied) while connecting to upstream
調べてみると、SELinuxのせいでエラーが出ているみたいです。
以下のコマンドで、httpd_can_network_connectを許可することで解消しました。
sudo setsebool httpd_can_network_connect on -P
参考
アプリケーションのデプロイ · Build web application with Golang
Systemdを使ってさくっと自作コマンドをサービス化してみる - Qiita
【node】port:80で来たのをport:8080に振る。 - CAMPHOR- Tech Blog