Nginx 官方入門文件筆記 - jenhaoyang/backend_blog GitHub Wiki

一個master process:處理設定檔、管理worker processes
多個worker processes:處理request,可以在設定檔調整

設定檔位置:/usr/local/nginx/conf 或是 /etc/nginx 或是 /usr/local/etc/nginx

控制nginx: nginx -s signal

signal 有下列幾種

  • stop:強制停止
  • quit:緩和停止
  • reload: 再次讀取設定檔
  • reopen:再次打開log files

設定檔

simple directive:一個指令和參數並以;結尾

block directives:以大括號{ } 包住一組指令,如果block directives裡面還有用大括號包住的指令,這些指令叫做context

指令放在任何contexts 以外的地方就稱為放在main context,例如events 和http放在main context, server 在 http裡面, location在server裡面

靜態網頁內容

下面範例依照進來的request來提供在/data/www底下的HTML檔案,或是在/data/images底下的圖片檔,我們將會用到 http block, 裡面包含 server block 和 location block。

  1. 在/data/www放index.html檔
  2. 在/data/images放一些圖片
  3. 打開設定檔,通常設定檔裡會有多個 server blocks,並且以監聽的port和server name來區分來區隔,例如:
server {
    listen      80;
    server_name example.org www.example.org;
    ...
}

server {
    listen      80;
    server_name example.net www.example.net;
    ...
}

server {
    listen      80;
    server_name example.com www.example.com;
    ...
}

4.一旦nginx確定哪一台server處理這個request,他就會開始依照 location 指令來指定URI,下面範例指定"/"到 "/data/www",如果有多個開頭相似的location,nginx選擇最長的那個 將以下location指令增加到我們自己建立的server block

location / {
    root /data/www;
}

5.增加第二個location到server block

location /images/ {
    root /data;
}

以下為一個運行的config檔,我們可以連到本機的80port,http://localhost:80/就會出現我們的index.html,如果我們連到http://localhost/images/example.png ,就會出現放在/data/images底下的example.png

events {} #先加上去不然會報錯誤
http {
    server {
        location / {
            root /data/www;
        }
        location /images/ {
            root /data;
        }
    }
}