もくもくろぐ

技術力

Webサーバを建てた話

あらすじ

Yeomanを使って無事にWebアプリをlocalhostで起動することができただいちろ。
外部へ公開するためにはWebサーバを建てなければいけなかった!!!

これはなに

ConoHa VPS で Webサーバ を建てて Grunt で起動した Webアプリ を動かした日記です。

前提条件

ConoHa VPS を契約しています。メモリ1Gの一番安いやつ。 OSは、 CentOS 6.4 (64bit) です。
サーバはApacheですね。
今のところは Twitterbot を動かしているだけで特に設定とかは加えていませんでした。

やること

  • httpd を導入
  • ポートを解放する
  • おわり

httpd を導入

% yum -y install httpd

そのうちsslも使いたくなるといけないので

% yum - y install mod_ssl

導入できました。
起動は、

% service httpd start

です。

% chkconfig httpd on

としておくと、サーバの起動時に自動的にonになって便利です。


ポートを解放する

Gruntでビルドをすると、9000番ポートにwebアプリが立ち上がります。
外部からここにアクセスしようとすると、当然9000番ポートを開けなければいけません。そりゃそうだ。

iptables を書き換える

% vi /etc/sysconfig/iptables
もちろん Emacs でも Sublime Text でもいいです。

それを開くと既に何行かあると思います。 80番ポートは既に開いているので、
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
という一行を
-A INPUT -m tcp -p tcp --dport 80 -j ACCEPT
の下くらいに書けばオッケーです。

その後に iptables を再起動すれば大丈夫。

% /etc/init.d/iptables restart

ローカルのクライアントから telnet とかで開いてるのを確認したい。そういえばグローバルIPってどこだっけ。


グローバルIPを確認する

もちろん ifconfig でいいです。

でもウチ ifconfig よく知らんし… という人は、ConoHa のコントロールパネルから確認できます。

VPS > サーバーリスト > ネットワーク > IPアドレス

でずらっと出てきた中に IPv4ゲートウェイ という項目があるので、そこの数字です。
(探すのに結構時間かかったし、今こうして書いても分かりにくいので ifconfig でいいと思う)


おわり

9000番ポートも開けた、Gruntを起動した、そうしたら早速アクセスしてみましょう。だめですか!?だめですね。
yeomanのプロジェクトルートに行って、Gruntfile.js の hostname が 0.0.0.0 になっているか確認しましょう。デフォルトだと localhost だよ

以上日記でした。
案外こういう記事ない気がする。まあやってみて簡単だったといえば簡単だったけど、はじめてWebサーバ建てたいな〜っていうと難しいような気がするのでこうして書いた記事でも公開しておきます。