nginx作為輕量級的http伺服器,能夠很好地應付高並發的http請求。同時,它也能被設定為http代理伺服器。身為後台開發的菜鳥,這樣優秀的開源伺服器擺在眼前,總要研究一番,學點東西才可靠啊!
當然,學習nginx的第一步就是學會如何使用它了。
首先,從官網下載源碼http://nginx.org/download/nginx-1.8.0.tar.gz,解壓縮後進入nginx-1.8.0目錄。
nginx依賴pcre函式庫,所以還需要下載pcre原始碼 。
將pcre源碼解壓縮在nginx-1.8.0/3rdparty/pcre-8.32,然後在根目錄下執行
<code>./configure --with-http_ssl_module --with-pcre=./3rdparty/pcre-8.32/ ./make ./sudo make install </code>
即可完成安裝,預設安裝目錄在/usr/local/nginx。
安裝過程中可能會提示缺少openssl函式庫,可以直接apt-get install。
在使用nginx之前,先在/home/bookxiao/下創建一個nginx目錄用於存放資源文件,再創建到/usr/local/nginx下conf, sbin以及logs的軟連接,避免頻繁的切換目錄。
<code>bookxiao<span>@ubuntuforfun</span><span>:~/nginx</span><span>$ </span>ls bin conf data logs</code>
nginx的設定檔位於conf/下,名為nginx.conf。組成設定檔的基本單元是一條的“指令(directives)”,指令由名稱、參數屬性以及結尾的’:’三部分組成。此外,有些指令會被{ }包圍起來,組成一個block;如果block內部包含一些指令,那麼這個block也叫作一個「上下文(context)」。
設定檔裡所有的指令要不是在某個上下文內,就是不被任何上下文包含(即位於主上下文),有點類似C中的全域變數。
例如, 一個簡單的設定檔如下所示:
<code>bookxiao<span>@ubuntuforfun</span><span>:~/nginx/conf</span><span>$ </span>cat nginx.conf <span>#user nobody;</span> worker_processes <span>1</span>; events { worker_connections <span>1024</span>; } http { server { listen <span>80</span>; server_name localhost; location / { root html; index index.html index.htm; } location /images { root /home/bookxiao/nginx/data; } } }</code>
event, http, server都是”context”;指令”worker_processes 1;”位於main context。
要想簡單測試nginx的功能,那麼先來看看如何設定server{}區塊。在nginx中,每個server區塊都表示一個HTTP服務,不同的server有不同的port和server_name。
假設我們現在有一張圖片,存放路徑為~/nginx/data/images/nginx學習筆記1 使用nginx建構簡單的HTTP伺服器.jpg。
現在我們想在瀏覽器裡面輸入http://127.0.0.1/images/nginx學習筆記1 使用nginx建構簡單的HTTP伺服器.jpg
,就會這樣:
仔細看一下上面的配置文件,看到有個location的block是這樣定義的:
<code> location /images { root /home/bookxiao/nginx/<span><span>data</span>;</span> }</code>
locations後跟的”/images」用來跟客戶端的URL請求作前綴匹配,如果匹配了,那麼就將root的值添加到URL的前端,組成新的URL去文件系統尋找資源檔案。
比如說,這裡原本的URL是”/images/nginx學習筆記1 使用nginx建構簡單的HTTP伺服器.jpg”,那麼最終的URL是”/home/bookxiao/nginx/data/images/nginx學習筆記1 使用nginx建構簡單的HTTP伺服器.jpg」。
如果有多個location都符合某個URL怎麼辦? nginx的策略是選擇最長的匹配值的那個location。
所以,我們可以增加這樣一個server:
<code> server { listen <span>9999</span>; server_name localhost_test; location /images { root /home/bookxiao/nginx/<span><span>data</span>/test;</span> } }</code>
然後執行sudo nginx -s reload
重新載入設定檔。然後我們在data/下新建一個test/images/目錄。這樣,我們在瀏覽器中輸入http://127.0.0.1:9999/images/nginx學習筆記1 使用nginx建構簡單的HTTP伺服器.img
。那我們就會看到:
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
以上就介紹了nginx學習筆記1 使用nginx建立簡單的HTTP伺服器,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。