EC2+nginx+バーチャルホスト+独自ドメイン設定まで行う手順まとめ

※ 下記ブログの転載です。インスタンスの作成までは、ブログの方をご参考くだしあ。
http://www.rokurofire.info/2013/08/20/ec2_nginx/


# ec2-userでログイン
インスタンスを作成したら、早速terminalでssh接続してみます。

```ローカル環境
$ ssh -i ~/.ssh/{鍵名}.pem ec2-user@{繋ぎ先}
# インスタンス作成時にssh port22で設定しておく
```


##rootパスワード変更

```リモート環境
$ sudo passwd
```

## ユーザー追加作業
```リモート環境
$ sudo adduser username
$ sudo passwd username
```
wheelグループ追加。sudoできるようにする。

```リモート環境
$ sudo usermod -G wheel {username}
```
```リモート環境
$ sudo vi /etc/sudoers
# 下記をコメントイン
# wheel	ALL=(ALL)	NOPASSWD: ALL
```

# sshで接続

```ローカル環境
$ ssh-keygen -t rsa
```

ローカルでssh-keygenし、.pubの方を、authorized_keysという名前で設置してパーミッション変更。

```リモート環境
$ su username
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ cd ~/.ssh/
$ chmod 600 authorized_keys

# authorized_keysの所有者は {username}:{username}
```

##sshポート番号変更
ログインし直す直前にやる。

```リモート環境
$ sudo vim /etc/ssh/sshd_config

#Port 22
  ↓
Port 10101

# sshリスタート
$ sudo service sshd restart
```

EC2 ダッシュボードの「Security Groups」
![EC2_Management_Console.jpg](https://qiita-image-store.s3.amazonaws.com/0/10172/d26f0436-bab1-11cd-b759-b1ed6f2d2636.jpeg "EC2_Management_Console.jpg")

デフォルトの22を削除し、新たに設定したポート番号を追加
![EC2_Management_Console2.jpg](https://qiita-image-store.s3.amazonaws.com/0/10172/38f4e0a9-6ea7-2e13-fdc3-99c799c4f6d7.jpeg "EC2_Management_Console2.jpg")




##sshでログイン
```ローカル環境
$ ssh -i ~/.ssh/{秘密鍵名} -p {ポート番号} {username}@{ec2の繋ぎ先}
```

ここまで出来たら、念のためインスタンスをリブートしとく。




# Elastic IPs の設定
後で変更になると色々と大変と聞いているので、まずこれをやっておいたほうがよいらしいです？
インスタンスのIPを固定する。EC2のダッシュボード左にある、Elastic IPsメニューを開いて下記操作します。

「Associate」を選択。
![elastic1.jpg](https://qiita-image-store.s3.amazonaws.com/0/10172/3216e124-07ed-90c2-5b30-18957034dc5c.jpeg "elastic1.jpg")

IP固定したいインスタンスを選択。
![elastic2.jpg](https://qiita-image-store.s3.amazonaws.com/0/10172/e8a014c5-0031-1ac8-e91d-6dd4c98bd444.jpeg "elastic2.jpg")

注）この設定をすると、sshで接続する時コマンドも変わるので注意。軽くハマりました。

```ローカル環境
ssh -i ~/.ssh/{鍵名} -p {port番号} {username}@ec2-ほげほげ〜
↓
ssh -i ~/.ssh/{鍵名} -p {port番号} {username}@{固定したIP番号}
```

## nginx インストール
```リモート環境
# yum  update
$ sudo yum update

# nginx インストール
$ sudo yum -y install nginx

# nginx 起動
$ sudo /etc/init.d/nginx start

```

nginxを起動して、設定したIPアドレスと叩くと、下記画面になってるはず。

![nginx.jpg](https://qiita-image-store.s3.amazonaws.com/0/10172/fcae661d-2111-a70f-0937-6f39bb2c4b95.jpeg "nginx.jpg")

#DNSの設定
お名前.comを例にしていきます。
DNSレコード設定画面で、ホスト名に「www」をいれたものと、空にしたものの2個を追加（Aレコード）。

![domain.jpeg](https://qiita-image-store.s3.amazonaws.com/0/10172/f43ccf29-d339-9851-e871-ff5bde9a3e57.jpeg "domain.jpeg")
例）画像の場合、「www.ruilog.info」「ruilog.info」の2つ。

#nginx バーチャルホストの設定

コマンドメモ

``` リモート環境
$ nginx -V #バージョンを調べる
$ sudo /etc/init.d/nginx restart #リスタート
$ sudo /etc/init.d/nginx configtest #設定ファイルのチェック
$ sudo vim /etc/nginx/nginx.conf #設定ファイル
$ sudo vim /etc/nginx/conf.d/virtual.conf #バーチャルホストの設定
```

設定ファイルの変更（今回、vhosts用の別ファイルなどは利用せず）

```リモート環境
$ sudo vim /etc/nginx/nginx.conf

# サーバの設定追加
server {
	listen 80;
	server_name www.hogehoge.com;
	location / {
		root /var/www/vhosts/test/;
		index index.html;
	}
}

# ドキュメントルートは /var/www/vhosts/test/ とする
# ドキュメントルートのディレクトリ所有者が{username}になっていないと正常に動かない？
```

以上で完了。


###参考にさせていただいたサイト様
* [http://blog.i97506051502.com/20121126/FoundationOfAmazonLinux/](http://blog.i97506051502.com/20121126/FoundationOfAmazonLinux/)
* [http://somathor.hatenablog.com/entry/2013/05/03/210704](http://somathor.hatenablog.com/entry/2013/05/03/210704)