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

LAMP 系列導讀

01. LAMP 系列教程(一)| 詳解 Linux 環境下部署 HTTPD 服務
02. LAMP 系列教程(二)| 如何在 Linux 環境下部署 AWStats 分析系統來監控 Web 站點?
03. LAMP 系列教程(三)| 一文讀懂 HTTPD 服務的訪問控制
04. LAMP 系列教程(四)| MySQL 數據庫系統(一)
05. LAMP 系列教程(五)| MySQL 數據庫系統(二)- SQL語句的基本操作
06. LAMP 系列教程(六)| MySQL 數據庫系統(三)- 數據庫的用戶授權
07. LAMP 系列教程(七)| MySQL 數據庫系統(四)- 數據庫的備份與恢復
08. LAMP 系列教程(八)| 帶你輕鬆玩轉 LAMP 網站架構平臺(一)
09. LAMP 系列教程(九)| LAMP 架構應用案例 - 部署 PHPMyAdmin 系統(二)

LNMP 系列導讀

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

一、Nginx 動靜分離

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

二、靜態頁面

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

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

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

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

靜態頁面的特點

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

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

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

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

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

  • 運行數據快;

在這裏插入圖片描述

三、動態頁面

動態頁面:是一對多訪問,通過一個頁面可以根據若干參數返回其不同的數據,在互聯網架構中,不同的用戶訪問不同的動態場景頁面請求,都可能是不一樣的頁面。比如:淘寶京東商品列表頁面、百度搜索引擎結果頁面等;

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

動態頁面的特點

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

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

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

  • 在進行搜索引擎推廣時需做一定的技術處理才能夠適應搜索引擎的要求;
    在這裏插入圖片描述

四、動靜分離

動靜分離是指:靜態頁面動態頁面分開不同系統訪問的架構設計方法。

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

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

靜態頁面與動態頁面以不同域名進行區分;
在這裏插入圖片描述

五、動靜分離實操案例

1、Nginx服務器環境下,準備靜態資源,用於訪問,在根目錄下創建data目錄,並在該目錄裏面創建兩個文件夾imagewww,在image文件夾裏上傳一張本地圖片,www文件夾裏創建一個html文件。

# cd /data/
# ll
總用量 8
drwxr-xr-x. 2 root root 4096 329 19:14 image
drwxr-xr-x. 2 root root 4096 329 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 動靜分離什麼是靜態頁面和動態頁面以及它們各自的特點動靜分離的架構設計圖動靜分離實操案例等;

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

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

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

來和上萬名讀者一起見證彼此成長!

掃描下方二維碼,添加傑哥微信,備註:地區/城市-職業方向/學校-暱稱,即可加入傑哥的IT之旅讀者羣,羣內僅供學習交流、日常互動、資源分享、經驗分享等,一定要記得備註,我會盡快通過好友驗證的。

👆長按識別,添加微信


推薦閱讀

1、 萬字長文帶你瞭解最常用的開源 Squid 代理服務器
2、 一款常用的 Squid 日誌分析工具
3、 爲什麼要學習 Markdown?究竟有什麼用?
4、 GitHub 標星 2.5K+!教你通過玩遊戲的方式學習 VIM!
5、 GitHub 標星 8K+!一款開源替代 ls 的工具你值得擁有!
6、 Linux 環境下實戰 Rsync 備份工具及配置 rsync+inotify 實時同步
7、 沒有一行代碼,「2020 新冠肺炎記憶」這個項目卻登上了 GitHub 中文趨勢榜第一!
8、 RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 實現無人值守安裝
9、 Nginx 系列教程(一)| 手把手教你在 Linux 環境下搭建 Nginx 服務
10、 Nginx 系列教程(二)| 一文帶你讀懂 Nginx 的正向與反向代理
11、 Nginx 系列教程(三)| 一文帶你讀懂 Nginx 的負載均衡

今天的推薦不知道大家喜歡嗎?如果你喜歡,請在文章底部留言和點贊,以表示對我的支持,你們的留言點贊是我持續更新的動力哦,感謝大家!

1、點個贊,讓更多的人看到這篇文章,順便激勵下我,嘻嘻。

2、關注我的原創微信公衆號「傑哥的IT之旅」專注於IT技術乾貨文章,以及不定期的分享學習資料,實用工具,面試經驗等,當然了還有內推機會哦,期待你的關注!

歡迎關注我的微信公衆號

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