Symfoware

Symfowareについての考察blog

はじめてのアマゾンウェブサービス(AWS) nginxのインストールと外部公開

EC2にサーバーインスタンスを作成し、ssh接続してみました。
はじめてのアマゾンウェブサービス(AWS) インスタンスの生成とssh接続


nginxをインストールして、外部からの接続を行ってみます。


nginxのソースビルド



せっかくなので、aptでインストールするのではなく、ソースからビルドしてみました。
こちらで行った、Lua拡張ありでビルドしてみます。
Debian 7 + nginx 1.6.2 + lua-nginx-moduleの環境構築


以下、ざっくりな手順です。
必要なモジュールをインストール。


$ sudo apt-get install g++ make git
$ sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev libbz2-dev libssl-dev tar unzip




Luajitをインストール。


$ cd /usr/local/src
$ sudo wget http://luajit.org/download/LuaJIT-2.0.3.tar.gz
$ sudo tar zxf LuaJIT-2.0.3.tar.gz
$ cd LuaJIT-2.0.3
$ sudo make PREFIX=/opt/luajit
$ sudo make install




ビルドしたsoファイルを読み込み


$ sudo ldconfig




nginx拡張のソースを取得


$ cd /usr/local/src
$ sudo git clone https://github.com/chaoslawful/lua-nginx-module.git
$ sudo git clone https://github.com/simpl/ngx_devel_kit.git




nginx本体の取得とビルド


$ cd /usr/local/src/
$ sudo wget http://nginx.org/download/nginx-1.6.2.tar.gz
$ sudo tar zxf nginx-1.6.2.tar.gz
$ cd nginx-1.6.2

$ sudo ./configure --prefix=/opt/nginx \
--add-module=/usr/local/src/ngx_devel_kit \
--add-module=/usr/local/src/lua-nginx-module

$ sudo make
$ sudo make install




nginx起動


$ sudo /opt/nginx/sbin/nginx




ここでこんなエラーが発生したら、Luajitビルド後のldconfigが漏れています。


/opt/nginx/sbin/nginx: error while loading shared libraries:
libluajit-5.1.so.2: cannot open shared object file: No such file or directory




これでよかろうと、ブラウザで表示しようとしたらつながらない。。。




httpの外部アクセス許可



これはhttpアクセスを許可していないからだろうということで設定してみます。

AWSコンソールから「Security Groups」を選択。
「Inbound」タブを開いて「Edit」をクリックします。

587_01.png


HTTPをAnywhereから接続できるように構成。

587_02.png


設定が追加されました。

587_03.png


これで外部から接続できるはずです。

587_04.png




起動スクリプト



ついでに起動スクリプトを置いておきます。


$ sudo vi /etc/init.d/nginx




内容はちょっと適当ですが。


#! /bin/sh

### BEGIN INIT INFO
# Provides:         nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:     0 1 6
# Short-Description: starts the nginx web server
# Description:     starts nginx using start-stop-daemon
### END INIT INFO

PATH=/opt/bin:/opt/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/nginx/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
        . /etc/default/nginx
fi

set -e

case "$1" in
start)
        echo "Starting $DESC: "
        exec $DAEMON
        echo "$NAME."
        ;;
stop)
        echo "Stopping $DESC: "
        exec $DAEMON -s quit
        echo "$NAME."
        ;;
reload)
     echo "Reloading $DESC configuration: "
     exec $DAEMON -s reload
     echo "$NAME."
     ;;
*)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|reload}" >&2
        exit 1
        ;;
esac

exit 0





実行権限を付与しておきます。


$ sudo chmod +x /etc/init.d/nginx






自動起動の設定



sysv-rc-confで自動起動するようにしておきます。


$ sudo apt-get -y install sysv-rc-conf
$ sudo sysv-rc-conf nginx on




ちゃんと追加されました。


$ sudo sysv-rc-conf --list | grep nginx
nginx        2:on    3:on    4:on    5:on


関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2015/03/08(日) 18:36:03|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<はじめてのアマゾンウェブサービス(AWS) nginx + php-fpmでCodeIgniterを動かす | ホーム | はじめてのアマゾンウェブサービス(AWS) インスタンスの生成とssh接続>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1680-7b5c9964
この記事にトラックバックする(FC2ブログユーザー)