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

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

LAMP 系列導讀

  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 系列導讀

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

一、Nginx 動靜分離
Nginx 動靜分離,簡單來說,就是把動態和靜態請求分開,這裏所說的不是將動態頁面和靜態頁面物理分離,可以理解爲:Nginx處理靜態頁面,Tomcat處理動態頁面。

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

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

無論如何訪問都只是讓服務器傳數據給請求端,並不做腳本計算及讀取後臺數據庫,提高訪問速度及降低了部分安全隱患。

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

靜態頁面的特點

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

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

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

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

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

運行數據快;

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

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

動態頁面的特點

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

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

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

在進行搜索引擎推廣時需做一定的技術處理才能夠適應搜索引擎的要求;

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

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

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

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

Nginx系列教程(四)| 一文帶你讀懂Nginx的動靜分離
五、動靜分離實操案例
1、 在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

2、 修改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         }

3、 重啓Nginx服務

# ./nginx -s stop
# ./nginx

4、 驗證效果

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

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

總體上來說,動靜分離是將原本需要動態生成的站點通過以靜態站點的優化技術,如實際情況中,數據量不大時,可生成靜態頁面數據不多的業務,適合於頁面靜態化優化。

這篇文章總體結構不長,但希望大家邏輯要清晰,彼此間都有所收穫。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章