新聞中心
前期準備
準備一個web靜態(tài)資源(我用的是之前學習的webgl的例子),先來看看怎么配置nginx:

網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了清河免費建站歡迎大家使用!
首先配置listen指令,監(jiān)聽8000端口。接著配置一個location指令塊,/表示所有請求,然后配置/后的路由與請求目錄下的路徑要一致,這時有兩種使用方法,alias是其中一種。
listen:請求進入nginx前,首先需要監(jiān)聽端口使得nginx與客戶端建立一個tcp鏈接。listen指令就是用來監(jiān)聽端口的,處于server指令塊內(nèi)的。通過監(jiān)聽的端口與地址就能判斷使用哪些server去處理請求。
listen指令值主要分為三種類型:
-
address[:port]-監(jiān)聽一個地址或者加相應的端口。比如listen 127.0.0.1:8000 -
port-監(jiān)聽一個端口。比如listen 8000 -
unix:path-監(jiān)聽一個unix socket地址,只用于本機通訊。比如unix:/var/run/nginx.sock
然后使用命令重載nginxnginx -s reload,這時訪問localhost:8000就能看到效果了 root與alias:這兩個指令主要功能都是將url映射為文件路徑,以返回靜態(tài)文件內(nèi)容。主要的差別在于:
root有一個默認值html,可以出現(xiàn)在http、server和location指令塊內(nèi),并且會將完整的url映射進文件路徑中 alias沒有默認值,只能出現(xiàn)在location指令塊中,并且只會將location后的url映射到文件路徑 舉例說明:
location?/root?{
????root?html
}
location?/alias?{
????alias?html
}
當訪問localhost/root/時,根據(jù)配置的指令值,會在html后加上/root再去訪問index.html。所以實際訪問的路由地址為localhost/html/root/index.html。這是因為root會將完整的url映射進文件路徑中。
而訪問localhost/alias/時,訪問的路由地址為localhost/html/index.html。
使用gzip壓縮來減少網(wǎng)絡傳輸
當訪問的資源很大時,往往會消耗大量的寬帶,也增加加載時間。nginx可以設置靜態(tài)資源的壓縮功能。
gzip?on
#表示打開gzip功能開關
gzip_min_length?1
#表示gzip最小壓縮字節(jié)大小,如果一個文件很小,在一個tcp報文就能發(fā)送出來,這時再進行壓縮效果不太,卻又消耗cpu。(我這是為了演示才設置為1)
gzip_comp_level?2
#表示壓縮級別
gzip_types
#表示只對列出來的類型進行壓縮
壓縮后只有830kb,而且在響應頭中也能看出使用了gzip壓縮
使用autoindex
使用autoindex可以將一個目錄信息分享給用戶,用戶根據(jù)自己需求打開對應目錄。
在文檔中介紹到,當訪問/結(jié)尾的url時,會對應到這個目錄并展示這個目錄的結(jié)構(gòu)。使用方法就是把autoindex置為on 訪問css/這個文件夾時:
這里需要提出一點的是,會有一些情況:開啟了autoindex后,還是不會返回目錄結(jié)構(gòu)??赡苁且驗榕渲胕ndex指令,index指令優(yōu)先級會大于autoindex指令。具體如下:
index:當訪問/時會返回index指令的文件內(nèi)容。index file,默認值是index.html,可以出現(xiàn)在http、server和location指令塊中。
autoindex:當url以/結(jié)尾時,嘗試以html/xml/json等格式返回root/alias中指向目錄的目錄結(jié)構(gòu)
限制訪問速度
因為公網(wǎng)帶寬是有限的,當有許多用戶同時訪問時,他們是一個增強關系。這時可能需要用戶訪問一些大文件時限制訪問速度,以確保能有足夠的帶寬使得其他用戶能夠訪問一些例如css,js等基礎文件。這時可以設置set的命令配合一些內(nèi)置變量來實現(xiàn)這一個功能。比如說
set?$limit_rate?1k;
限制服務器向瀏覽器發(fā)送響應的速度。$limit_rate這個變量可以在官網(wǎng)的ngx_http_core_module模塊中的Embedded Variables中
用法就是變量后面加上一個以空間為單位的數(shù)字,表示每秒傳輸多少字節(jié)。加上限制之后,會發(fā)現(xiàn)訪問速度有變化。
記錄access日志
日志要顯示什么內(nèi)容,就要看要設置什么樣的格式。使用log_format指令定義日志的格式。
log_format格式允許設置一個名字,這就可以對不同用途時記錄不同格式的日志文件。如圖所示,設置為名為main的日志格式。這個格式使用了很多內(nèi)置變量:
$remote_addr:表示遠端的ip地址,也就是瀏覽器的ip地址
$remote_user:表示用戶名提供基本身份驗證
$time_local:表示訪問時間
$request:完整的原始請求行
$status:表示響應狀態(tài)
$body_bytes_sent:發(fā)送給客戶端的body字節(jié)數(shù)
$http_referer:表示從哪跳轉(zhuǎn)過來
$http_user_agent:用戶瀏覽器的類別,版本以及操作系統(tǒng)的一些信息
$http_x_forwarded_for:客戶端請求頭中的"X-Forwarded-For"
設置完log_format之后,就要去設置日志記錄的地方。使用access_log指令。
access_log所在哪個server塊中,就表示這類請求的日志都記錄在access_log設置的地方;
server?{
????...
????access_log?logs/access.log?main;
}?
表示將這個server的請求記錄在logs的access.log文件中,采用main的記錄格式
以上就是通使用Nginx來搭建一個靜態(tài)WEB資源服務器的全過程,非常簡單,但是,非常實用。
當前文章:Nginx搭建靜態(tài)資源服務器
URL標題:http://www.fisionsoft.com.cn/article/dpoddcg.html


咨詢
建站咨詢
