ほんとに1からnginx触る

vagrantの環境用意

hnakamur/ubuntu-14.04-x64 https://vagrantcloud.com/hnakamur/ubuntu-14.04-x64

nginx install

sudo apt-get install nginx curl
sudo service nginx start
curl http://localhost:80

ok

nginxの設定を有効にする

/etc/nginx/nginx.confを見る。以下の様な設定が書いてある。

http {
  ## skip..
  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
}
  • sites-enabled以下に書くapacheっぽい書き方
  • conf.d以下にfoo.confを書く書き方がある。(無効にする時はfoo.disabledなどにrenameするらしい)

したがって、includeの通りの場所に書けば良いらしい。

nginxでエラーログ/アクセスログの出力を見る

defaultでは/etc/nginx.confに以下の様な設定が書いてある。

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

/var/log/nginx以下にログが出力される。

/var/log/nginx/access.log

....
10.0.2.2 - - [06/Aug/2014:07:24:58 +0000] "GET /static/foo.txt HTTP/1.1" 404 151 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:31.0) Gecko/20100101 Firefox/31.0"

/var/log/nginx/error.log

defaultではlog levelがerrorなのでerrorにならない以外error.logに出力されない。 log levelは以下の通り

  • debug
  • info
  • notice
  • warn
  • error
  • crit
  • alert
  • emerg

log levelをdebugにしてみる

        error_log /var/log/nginx/error.log debug;

既存の設定無効にする。

ubuntuはdefaultで/etc/nginx/site-enabledにdefaultというlinkが貼られている。 /etc/nginx/conf.d/以下に自分で設定書く時不要なのでsymlink消す。

sudo rm /etc/nginx/site-enabled/default

nginxでstatic file をserveする。

/static/以下を/var/www/static以下に

rootを使う。

/etc/nginx/conf.d/staticserve.conf

server {
   listen 80 default_server;
   location /static {
       root /var/www;
   }
}

/public/static/以下を/var/www/static以下に

alias使う。

/etc/nginx/conf.d/staticserve.conf

server {
   listen 80 default_server;
   location /static {
       root /var/www;
   }
   location /public/static {
       alias /var/www/static;
   }
}

参考

Beginner’s Guide http://nginx.org/en/docs/beginners_guide.html#static

Core functionality http://nginx.org/en/docs/ngx_core_module.html

nginx連載3回目: nginxの設定、その1 - インフラエンジニアway - Powered by HEARTBEATS http://heartbeats.jp/hbblog/2012/02/nginx03.html