追記(2020/01/03)
コメントで教えていただいたのですが、2020年1月3日現在一時的にサービスダウンしているようです。
同じようなサービスlocalhost.run
を使ってみたので、よろしければ。
はじめに
自分用のメモみたいなものなので、言いたいことしか書かれてないです。
まずngrokとは
ngrokってご存知ですか?
ローカル上で開発してるサーバーやネットワークサービスをそのまま外部に公開できるサービスで、heroku
のサーバーに上げない版みたいなやつです。
localhost
にドメインを振り分けてくれるイメージですかね。
使い方
インストールが必要です。
$ brew cask install ngrok
使い方も簡単で、
$ ngrok http <localhostのポート番号>
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Account hogehoge (Plan: Free)
Version 2.3.29
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://<ランダムな文字列>.ngrok.io -> http://localhost:2300
Forwardingの横に書かれている http://<ランダムな文字列>.ngrok.io
が公開アドレスになってます。
メリット
- LINE Botをはじめ、実際に動いているサーバーに繋がないと試せないようなプロダクトを作っているときに、開発しながら試せるのがとても便利
- ローカルでの変更が即座に反映される(アップロードの必要がない)
- アクセスログが見やすい
デメリット(?)
- アカウント登録しないと時間制限がある模様(よく調べてない)
- 無料アカウントだとドメイン指定ができないため、再起動するたびにアドレスが変わる
- 有料アカウントにすれば固定できるけど、中々お高め……
Serveoが神だった
ngrokのドメイン固定したいな。でも有料アカウントちょっとお高いな。
そんな時に見つけたのが、Serveoというサービスです。感動しました。
使い方
$ ssh -R 80:localhost:<ポート番号> serveo.net
$ ssh -R <指定したいサブドメイン>:80:localhost:<ポート番号> serveo.net
Forwarding HTTP traffic from https://<指定したサブドメイン>.serveo.net
たったこれだけ。https://<指定したサブドメイン>.serveo.net
でアクセスできる。
メリット
- インストールもアカウント登録も必要ない
- サブドメイン指定できる
- タイムアウト時間を指定できる
- なんか色々できる(端折った)
デメリット
(セキュリティ面がちょっと気になる……)
追記(2019/06/26)
起動した直後は好調なんですが、10分20分と経つとコネクションが切れてしまい、長期的な用途では使い物にならなかったです……。
~/.ssh/config
を書き換えたり、 autossh
を使ってみたりもしたのですが、ちゃんと動いてるの?といった挙動。
結局ngrok
に戻ってしまいました。解決策ある方教えてください……。
まとめ
最近LINE Botの開発をちょくちょくやっているので、ngrokはとても便利でした。
ただ、再起動するたびに値が変わるので、わざわざLINE Developerページに行って変更して……というのがとても不便。
そんな中で出会ったServeoは、とても魅力的に感じました。