ITオムライス

つらくなったら押すボタンを作った

2020-01-12 技術系

Webアプリを公開したことがなかったので、以前作ったつらくなったら押すボタンをデプロイしました。
押すと動物の雑学を教えてくれます。

つらくなったら押すボタン

公開するためにやったこと

ログの出力

すごくしょぼいアプリですが、公開するに当たって、アクセスログだけは残すようにしました。
ginの公式のサンプルを参考に実装しました。

gin-gonic/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

Supervisorで簡単にデーモン化 - Qiita

Systemdを使ってさくっと自作コマンドをサービス化してみる - Qiita

【node】port:80で来たのをport:8080に振る。 - CAMPHOR- Tech Blog

GolangのGinをSystemdで動かすのにハマった - ちゃんるいすのブログ

nginxで同一ホスト内にリバースプロキシしようとするとエラーが出る - Qiita