下面說說如何在windows下使用nginx做爲靜態資源服務器,html
一、修改config目錄下,這個配置文件,基本上全部的配置都在這裏面作,nginx
二、主要的配置參數以下,一些無關的參數我直接去掉了,注意,裏面的location能夠配置多個,這樣能夠根據業務的須要指定相關的路徑方便後續的運維和管理,windows
server {瀏覽器
listen 80; #nginx監聽的端口
server_name localhost; #攔截的用戶訪問路徑緩存
#charset koi8-r;安全
#access_log logs/host.access.log main;服務器
# 訪問本地絕對路徑下的靜態html
location / {
#root html;
root D:/tools/nginx/2/html1;
index index.html index.htm;
}架構
#訪問路徑拼接 upload 訪問本地絕對路徑下的某圖片
location /upload/ {
alias D:/tools/nginx/2/image1/;
autoindex on;
}運維
#訪問路徑拼接 /pages 訪問本地絕絕對路徑下的靜態html
location /pages/ {
alias D:/tools/nginx/2/html1/;
autoindex on;
}學習
# 精細化 配置相關靜態資源參數,優化訪問靜態資源文件
location ~ .*\.(gif|jpg|jpeg|png)$ {
expires 24h;
root D:/tools/nginx/2/image1/;#指定圖片存放路徑
proxy_store on;
proxy_temp_path D:/tools/nginx/2/image1/;#圖片訪問路徑
proxy_redirect off;
proxy_set_header Host 127.0.0.1;
client_max_body_size 10m;
client_body_buffer_size 1280k;
proxy_connect_timeout 900;
proxy_send_timeout 900;
proxy_read_timeout 900;
proxy_buffer_size 40k;
proxy_buffers 40 320k;
proxy_busy_buffers_size 640k;
proxy_temp_file_write_size 640k;
if ( !-e $request_filename)
{
proxy_pass http://127.0.0.1;#默認80端口
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
三、正常狀況下,雙擊exe啓動文件後,訪問localhost:80,nginx默認回去找到nginx的html下面的index.html,
第一種配置,使用本地絕對路徑,將靜態的html放到你的這個目錄下,我這裏的路徑是:D:/tools/nginx/2/html1;
因此配置以下:
# 訪問本地絕對路徑下的靜態html
location / {
#root html;
root D:/tools/nginx/2/html1;
index index.html index.htm;
}
而後,在黑窗口:nginx -s reload 一下:能夠看到訪問的是本身目錄下的頁面,
四、固然,爲了保證必定的安全性,也能夠在訪問的地址後拼接上一個字符串,好比我這裏加了page,整體的配置以下,
#訪問路徑拼接 /pages 訪問本地絕絕對路徑下的靜態html
location /pages/ {
alias D:/tools/nginx/2/html1/;
autoindex on;
}
再次訪問,仍然能夠訪問到該目錄下的html,
五、圖片的訪問,這裏我使用了兩種方式,第一種和配置訪問靜態html類似,使用絕對路徑進行訪問,
#訪問路徑拼接 upload 訪問本地絕對路徑下的某圖片
location /upload/ {
alias D:/tools/nginx/2/image1/;
autoindex on;
}
瀏覽器訪問一下,能夠看到,可以成功訪問到圖片,
再看第二種方式,一般爲了優化nginx的靜態資源訪問,咱們須要作一下參數調優配置,例如對圖片進行壓縮,緩存,添加用戶名和密碼的安全校驗等,均可以直接進行配置,以下,這個裏面還能夠繼續添加其餘的參數,你們可查閱相關資料進行學習研究,
# 精細化 配置相關靜態資源參數,優化訪問靜態資源文件
location ~ .*\.(gif|jpg|jpeg|png)$ {
expires 24h;
root D:/tools/nginx/2/image1/;#指定圖片存放路徑
proxy_store on;
proxy_temp_path D:/tools/nginx/2/image1/;#圖片訪問路徑
proxy_redirect off;
proxy_set_header Host 127.0.0.1;
client_max_body_size 10m;
client_body_buffer_size 1280k;
proxy_connect_timeout 900;
proxy_send_timeout 900;
proxy_read_timeout 900;
proxy_buffer_size 40k;
proxy_buffers 40 320k;
proxy_busy_buffers_size 640k;
proxy_temp_file_write_size 640k;
if ( !-e $request_filename)
{
proxy_pass http://127.0.0.1;#默認80端口
}
}
而後咱們訪問一下試試,能夠看到,經過這個方式仍然能夠成功訪問到圖片,由於咱們在配置參數裏面作了路徑代理的配置,
總結:這裏說一個應用場景,在一些大型的電商網站中,有一些商品詳情頁面上,須要的聚合多種不一樣維度的數據,好比像下面一張圖,
你們試一下,初次進入某個商品詳情頁面,若是網速不是太好的話你會發現加載的速度是比較慢的,聽說,爲了解決這樣的問題,後來許多架構師在這個問題上開始偏向於使用維度化數據聚合+緩存+頁面靜態化綜合解決這個問題,其中靜態化模板技術在這裏獲得了很好的應用,至於裏面的詳細內容你們能夠找找資料學習一下,其主要的思想就是將包含了大量待渲染的數據根據相關的業務參數進行頁面提早渲染成靜態模板,經過nginx訪問時能夠大大提高訪問的速度,固然,爲了改善整體的頁面渲染速度,頁面靜態化技術只是其中的一方面,背後的架構思想是很值得咱們學習和探究的!
————————————————版權聲明:本文爲CSDN博主「神祕的蔥」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/zhangcongyi420/article/details/89216867