とある事情でやることになって、色々あったのでメモっとく。
前提
まず以下が揃ってる前提です。
サーバーに接続する
ssh -Ai ./path/to/<PEM>.pem <USERNAME>@<IP>
どうせgitで使うやろうし -A にしておく。
なんかダイアログ出たらpemとセットのパスワードをいれる。
いろいろインストール
無事にログインできましたが、この時点では空っぽです。
Gitすら入ってないので入れます。
今回はrootであるていです。
# Git(Ubuntuなのでapt-get) apt-get install git # きっとNodeなので curl -L git.io/nodebrew | perl - setup # 入ったら.bashrcにパス追記 # お好きなNodeインストール # nodebrew install-binary -> use
とりあえずNodeが動いたらよし。
ファイアウォールの設定
これでOKかと思いきや、もひとつ関所です。
これによると、
ufwがデフォルトで有効になっており、22番接続のみ許可しております。
らしいので、ポートの設定をしなきゃいけません。
ufwとは
CentOS一筋でiptablesを直で触るしか知らなかったので、最初戸惑いました。
ufwはiptablesの設定を楽にやってくれるラッパみたいなもので、便利ですコレ!
# 設定状況をチェック ufw status # 設定の反映(でも実際打たなくても反映されてる気がする) ufw reload # 停止 ufw disable # 起動 ufw enable
初期状態では、
# ufw statusすると Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 22 ALLOW Anywhere (v6)
てな具合に、22番しか空いてないのが確認できると思うので、そこに追加を。
今回は雑に80番ポートで動かしていきます。
ufw allow 80 # もうちょっと詳細にしたいならこんな感じに # ufw allow from XXX.XXX.XXX.XXX to any port 80
これでおっけー。
iptablesのコマンドとか一切打つ必要ないです。
あとはNodeのアプリを
立てればおっけー。
しかしこの記事を書きたいモチベーションはこっから先にあります。
トラブルシューティング
Nodeのサーバーほんとに立ってる?
node server.js
これで本当にサーバー立ってるのか調べたいとき。
netstat -untap | grep node
これでなんてホストのなんてポートで動いてるかわかる。
Nodejs.orgのサンプル!!!
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/');
これ、ほんとよろしくない!
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, function() { console.log('Server running at port:1337'); });
こうすべきですよね!
以上、.listen()でホスト名を指定してしまい、悪くないFireWallの設定を調べ続け2時間を無駄にした人の備忘録でした。