LoginSignup
9
10

More than 5 years have passed since last update.

Nginx 実践入門 ー詳しい語句説明とともに

Last updated at Posted at 2016-10-28

概要

Nginxの入門です。

今回はNginx(エンジン エックス)を使い、詳しい語句説明と共に

ローカルで Hello Nginx と出力してみます。

僕自信も勉強中のため、分からないところが幾度とあります。

詳しい方、FBやご教授いただけると大変嬉しいです。

この投稿は簡略版になっていますので、全投稿を見たい方はNginx実践入門まで

Nginxとは

Igor Sysoev氏が開発した、高速・軽量のオープンソースwebアプリケーションサーバーです。

現在、とても人気が高く、Netflix・Wordpress.comやFacebookなどが使ってます。

モダンなWebサーバー

開発者のSysoev氏いわく、Nginxはモダンなwebアプリケーションサーバーである。

モダンなWebサーバーとは

予測可能な形でスケーラブル
高速かつ柔軟
簡単に使える
一般化されていて、様々なものに対応可能
保全性が高い
クラウドや仮想環境に対応している
と考えています。

目的

開発当時はApacheがWebサーバーでは有名でしたが、軽量で高速のオープンソースのWebサーバーと言うのはものはなかったので作ったそうです。

他にもリバースプロキシや、C10K問題の解決など、様々な特性があります。

ダウンロード

Nginxのダウンロードはとても簡単です。

他にもたくさんの記事がありますので、お使いのOSに合わせて検索してみてください。

以下は、Mac OSのHomebrewでインストールする場合です。

$ brew update #Homebrewをupdateします。
$ brew install nginx

なお。

command not found と表示された方は 「Homebrew インストール」でグーグル検索しましょう。

$ nginx -v
で、nginxのversionが表示されれば成功です。

Nginx起動

いよいよ、わくわくですね。

Nginxの起動もとっても簡単

$ sudo nginx
と打つだけです。

成功すれば何も表示されません。

では本当にプロセスは走っているのか、確認したい方は

$ ps -ax | grep nginx
psコマンドを打ってください。

55379 ?? 0:00.00 nginx: master process nginx
55389 ?? 0:00.00 nginx: worker process
55409 ttys002 0:00.00 grep nginx

大体、上記のようになっていれば成功です。

その他のコマンド

停止

$ sudo nginx -s quit
リロード

$ sudo nginx -s reload

ブラウザで表示

さて、現在、Nginxのサーバーが走っている状態だと思います。

現時点では設定ファイル(nginx.conf)はデフォルトのままですが、

Nginxが用意してくれている、index.htmlを表示してみましょう。

と言ってもブラウザ開くだけなのですが・・・

以下のリンクにアクセスしてください。

Screenshot 2016-10-26 11.43.46.png

このような嬉しい文章が表示されていれば成功です!

ファイルを作る

語句説明が思ったより長くなってしまいました。

さて、いよいよ、ご自身で作ったファイルを動かしてみましょう。

書類(Documents)フォルダにindex.htmlというファイルを作ってください。

僕はコマンドでしますが、慣れてる方でいいと思います。


Documents username$ touch index.html
Documents username$ ls
index.html

ではindex.htmlファイルに

<h1>Hello Nginx!</h1>
と記述をしてみましょう。

Hello Nginx

先程、作ったファイルをNginxを使ってブラウザに表示させましょう!

/usr/local/nginx/conf, /etc/nginx, もしくは /usr/local/etc/nginx

にある、nginx.confファイルの設定を変えなければいけません。

設定を変えるのは、

実際に動かしたいファイルの親フォルダを指定する

rootディレクティブ

ですね。

では、実際に

root html;
こちらを

root /Users/ユーザー名/Documents;
に変更してみましょう。

これだけで動くはずなのですが、もうすることがあります。

インフラ関連では必ず考えないといけない、権限です。

現在、index.htmlはユーザーのホーム以下にあります。

ですが、Nginxのプロセスの所有者はデフォルトではnginxになっているはずです。

なので、このままでは、

403 forbidden、Permission deniedとエラーがでまるはずです。

ではNginxのプロセスの所有者を変更してみましょう。

user

core コンテキストでは userディレクティブと呼ばれるものがあります。

これはプロセスの所有者を決定するものです。

#user nobody;
デフォルトではこのようにコメントアウトされていると思います。

ここを以下のようにご自身のユーザー名とグループ名で置き換えてあげましょう。

user ユーザー名 グループ名;
ちなみに、ユーザー名とグループ名は以下のように調べることができます。

$ whoami #ユーザー名を調べる
naggigoishi #僕の場合の出力
$ groups naggigoishi # naggigoishiのグループ名を調べる
staff com.apple.sharepoint.group.1 everyone localaccounts _appserverusr admin _appserveradm _lpadmin _appstore _lpoperator _developer com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh com.apple.sharepoint.group.1 everyone localaccounts _appserverusr admin _appserveradm _lpadmin _appstore _lpoperator _developer com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh #僕の場合の出力
#staffというのが僕の所属しているグループ名です。

さて、変更ができましたら、

$ sudo nginx -s reload
で、リロードをしてあげて、

にアクセスしてください。

Hello Nginxと出力されたら成功です!

 最後に

お疲れ様でした!

ひとまず、Nginxを使い htmlファイルを表示させることが出来ました!

デフォルトのファイルのコードの説明はこちらにあります

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10