Nginx系列教程(四)| 一文帶你讀懂Nginx的動靜分離

Nginx系列教程(四)| 一文帶你讀懂Nginx的動靜分離
做者:JackTian
微信公衆號:傑哥的IT之旅(ID:Jake_Internet)css

LAMP 系列導讀html

  1. LAMP 系列教程(一)| 詳解 Linux 環境下部署 HTTPD 服務
  2. LAMP 系列教程(二)| 如何在 Linux 環境下部署 AWStats 分析系統來監控 Web 站點?
  3. LAMP 系列教程(三)| 一文讀懂 HTTPD 服務的訪問控制
  4. LAMP 系列教程(四)| MySQL 數據庫系統(一)
  5. LAMP 系列教程(五)| MySQL 數據庫系統(二)- SQL語句的基本操做
  6. LAMP 系列教程(六)| MySQL 數據庫系統(三)- 數據庫的用戶受權
  7. LAMP 系列教程(七)| MySQL 數據庫系統(四)- 數據庫的備份與恢復
  8. LAMP 系列教程(八)| 帶你輕鬆玩轉 LAMP 網站架構平臺(一)
  9. LAMP 系列教程(九)| LAMP 架構應用案例 - 部署 PHPMyAdmin 系統(二)

LNMP 系列導讀nginx

  1. Nginx 系列教程(一)| 手把手教你在 Linux 環境下搭建 Nginx 服務
  2. Nginx 系列教程(二)| 一文帶你讀懂 Nginx 的正向與反向代理
  3. Nginx 系列教程(三)| 一文帶你讀懂 Nginx 的負載均衡

1、Nginx 動靜分離
Nginx 動靜分離,簡單來講,就是把動態和靜態請求分開,這裏所說的不是將動態頁面和靜態頁面物理分離,能夠理解爲:Nginx處理靜態頁面,Tomcat處理動態頁面。數據庫

2、靜態頁面
靜態頁面:是一個頁面對應一個內容,也就是一對一的關係,在互聯網架構中,頁面幾乎爲不變的或者是頁面發生變化頻率較低的。好比:html 頁面,js/css 樣式文件等;vim

與其匹配的技術架構來加速。好比:Squid、Nginx、CDN,而靜態頁面最大的優勢:速度快、跨平臺、跨服務器。後端

不管如何訪問都只是讓服務器傳數據給請求端,並不作腳本計算及讀取後臺數據庫,提升訪問速度及下降了部分安全隱患。瀏覽器

採用靜態頁面的方法:可將數據庫及後臺系統與前臺進行劃分,二者間沒有絕對的聯繫,從而提升站點安全。緩存

靜態頁面的特色tomcat

每一個網頁都有一個固定的 URL,且網頁URL以.htm、.html、.shtml等常見形式爲後綴,而不含有 ?;安全

網頁內容發佈到網站服務器上,不管是否有用戶訪問,每一個靜態網頁的內容都將保存在網站服務器上,也就是說,保存在服務器上的文件,每一個網頁都是一個獨立的文件;

內容相對穩定,容易被搜索引擎所檢索;

沒數據庫的支持,網站製做和維護方面工做量大,當網站信息量很大時,徹底依靠靜態網頁製做方式較困難;

交互性較差,功能方面有較大的限制;

運行數據快;

Nginx系列教程(四)| 一文帶你讀懂Nginx的動靜分離
3、動態頁面
動態頁面:是一對多訪問,經過一個頁面能夠根據若干參數返回其不一樣的數據,在互聯網架構中,不一樣的用戶訪問不一樣的動態場景頁面請求,均可能是不同的頁面。好比:淘寶京東商品列表頁面、百度搜索引擎結果頁面等;

動態頁面,與其之匹配的技術架構,好比:分層架構、服務化架構、數據庫、緩存架構;

動態頁面的特色

以數據庫技術爲基礎,可大大下降網站維護的工做量;

採用動態網頁技術的網站能夠實現更多的功能;

不是獨立存在於服務器上的網頁文件,只有當用戶請求時服務器才返回一個完整的網頁;

在進行搜索引擎推廣時需作必定的技術處理纔可以適應搜索引擎的要求;

Nginx系列教程(四)| 一文帶你讀懂Nginx的動靜分離
4、動靜分離
動靜分離是指:靜態頁面與動態頁面分開不一樣系統訪問的架構設計方法。

靜態頁面:訪問路徑短,速度快,幾毫秒;

動態頁面:訪問路徑長,速度慢,幾十毫秒甚至幾百毫秒,架構擴展性要求高;

靜態頁面與動態頁面以不一樣域名進行區分;

Nginx系列教程(四)| 一文帶你讀懂Nginx的動靜分離
5、動靜分離實操案例
一、 在Nginx服務器環境下,準備靜態資源,用於訪問,在根目錄下建立data目錄,並在該目錄裏面建立兩個文件夾image、www,在image文件夾裏上傳一張本地圖片,www文件夾裏建立一個html文件。

# cd /data/
# ll
總用量 8
drwxr-xr-x. 2 root root 4096 3月  29 19:14 image
drwxr-xr-x. 2 root root 4096 3月  29 19:13 www

# cd image/
# ls
遊戲.jpg

# cd ../www/
# ls
20200331.html
# cat 20200331.html 
<h1>This is a static page!</h1

二、 修改nginx.conf配置文件

添加監聽端口、訪問名字、重點添加location。

# vim /usr/local/nginx/conf/nginx.conf
 39     server {
 40         listen       80;
 41         server_name  192.168.1.10;
 42 
 43         #charset koi8-r;
 44 
 45         #access_log  logs/host.access.log  main;
 46 
 47         location /www/ {
 48         #    proxy_pass http://myserver;
 49             root   /data/;
 50             index  index.html index.htm;
 51         }
 52         location /image/ {
 53             root /data/;
 54             autoindex  on;
 55         }

三、 重啓Nginx服務

# ./nginx -s stop
# ./nginx

四、 驗證效果

在客戶端瀏覽器中輸入:http://192.168.1.10/image/和http://192.168.1.10/www/20200331.html分別進行測試動靜分離是否成功,刪除後端tomcat服務器上的某個靜態文件,查看是否能訪問,若是能夠訪問說明靜態資源Nginx直接返回了,無須在經過後端Tomcat服務器

Nginx系列教程(四)| 一文帶你讀懂Nginx的動靜分離
總結
經過本篇文章咱們介紹了什麼是 Nginx 動靜分離、 什麼是靜態頁面和動態頁面以及它們各自的特色、動靜分離的架構設計圖和動靜分離實操案例等;

整體上來講,動靜分離是將本來須要動態生成的站點經過以靜態站點的優化技術,如實際狀況中,數據量不大時,可生成靜態頁面數據很少的業務,適合於頁面靜態化優化。

這篇文章整體結構不長,但但願你們邏輯要清晰,彼此間都有所收穫。

若是對你有所幫助,煩請你們也多多留言互動、點個在看、轉發,這都是一種支持!混個臉熟什麼的,萬一下期贈書活動中選中你了呢!好了,就簡單介紹這麼多吧,咱們下期再見!

相關文章
相關標籤/搜索