Nginx 從入門開始的網站架設 (2)

新增一個靜態服務

上一篇文章中我們簡單認識了 nginx 的操作,接下來我們要透過那些操作來建立一個靜態服務。

1. 準備資料

假設我們的 nginx.exe 位於 nginx 底下,接著我們在這裡新增一個資料夾 data,並在 data 裡面再新增兩個資料夾,分別是 wwwimages,將 index.html 放入 www 資料夾中,將任意的圖片放到 images 資料夾內,這時候你的資料夾結構會像這樣:

1
2
3
4
5
6
7
8
9
nginx
 |- nginx.exe 
 |- conf
 |- data
 |  |- www
 |  |   |- index.html
 |  |- images
 |  |   |- test.jpg
 |- ...

2. 修改 nginx.conf

接著開啟你的 nginx.conf,並用下面的內容取代掉原本的設定:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
events {
    worker_connections  1024;
}

http {    
    server {
        # 如果電腦上有裝 IIS,預設會占用掉 80 port
        # 當這裡沒有改成其他 port 號,就算運行了 nginx 也會被帶到 IIS 的畫面去
	listen       8081;
	server_name  localhost;
		
        # 以 '/' 開頭的 url 會向 '/data/www' 發送請求
        location / {
	    # 官方文件上是寫 '/data/www',但測試過後無法執行
            root data/www;
        }

        # 以 '/images/' 開頭的 url 會向 '/data' 發送請求
        location /images/ {
            root data;
        }
    }
}

在設定 location 的時候,如果一個 url 如果有多個相符的區塊,nginx 會選擇具有最長前綴的區塊來發送請求。以上面的例子來說,第一個區塊的前綴是 /,長度為 1,因此當我輸入網址 /books 時,nginx 會幫我從長度更長的 /images 開始比對。這時候因為沒有其他相符的目的地了,所以他會走進最短的 / 裡。

3. reload nginx.conf

nginx.conf 儲存之後,開啟 cmd 將目錄切換到 nginx 的資料夾底下,如果已經啟動過 nginx,執行 nginx -s reload 來重新載入改寫好的 nginx.conf;如果還沒有,輸入 start nginx 來啟動 nginx。

沒有出現任何錯誤的話,就可以打開瀏覽器,輸入 localhost:8081 就可以看到我們剛剛新增在 /data/www 底下的 index.html 了。

參考資料

Built with Hugo
Theme Stack designed by Jimmy