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 樣式文件等;
與其匹配的技術架構來加速。比如:Squid、Nginx、CDN,而靜態頁面
最大的優點
:速度快、跨平臺、跨服務器。
無論如何訪問都只是讓服務器傳數據給請求端,並不做腳本計算及讀取後臺數據庫,提高訪問速度及降低了部分安全隱患。
採用靜態頁面的方法
:可將數據庫及後臺系統與前臺進行劃分,兩者間沒有絕對的聯繫,從而提高站點安全。
靜態頁面的特點
-
每個網頁都有一個
固定的 URL
,且網頁URL
以.htm
、.html
、.shtml
等常見形式爲後綴
,而不含有 ?
; -
網頁內容發佈到網站服務器上,無論是否有用戶訪問,每個靜態網頁的內容都將保存在網站服務器上,也就是說,保存在服務器上的文件,每個網頁都是一個獨立的文件;
-
內容相對穩定,容易被搜索引擎所檢索;
-
沒數據庫的支持,網站製作和維護方面工作量大,當網站信息量很大時,完全依靠靜態網頁製作方式較困難;
-
交互性較差,功能方面有較大的限制;
-
運行數據快;
三、動態頁面
動態頁面
:是一對多
訪問,通過一個頁面可以根據若干參數返回其不同的數據
,在互聯網架構中,不同的用戶訪問不同的動態場景頁面請求,都可能是不一樣的頁面。比如:淘寶京東商品列表頁面、百度搜索引擎結果頁面等;
動態頁面,與其之匹配的技術架構,比如:分層架構
、服務化架構
、數據庫
、緩存架構
;
動態頁面的特點
-
以數據庫技術爲基礎,可大大降低網站維護的工作量;
-
採用動態網頁技術的網站可以實現更多的功能;
-
不是獨立存在於服務器上的網頁文件,只有當用戶請求時服務器才返回一個完整的網頁;
-
在進行搜索引擎推廣時需做一定的技術處理才能夠適應搜索引擎的要求;
四、動靜分離
動靜分離
是指:靜態頁面
與動態頁面
分開不同系統訪問的架構設計方法。
靜態頁面
:訪問路徑短,速度快,幾毫秒;
動態頁面
:訪問路徑長,速度慢,幾十毫秒甚至幾百毫秒,架構擴展性要求高;
靜態頁面與動態頁面以不同域名進行區分;
五、動靜分離實操案例
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 動靜分離
、 什麼是靜態頁面和動態頁面以及它們各自的特點
、動靜分離的架構設計圖
和動靜分離實操案例
等;
總體上來說,動靜分離
是將原本需要動態生成的站點通過以靜態站點的優化技術,如實際情況中,數據量不大時,可生成靜態頁面數據不多的業務,適合於頁面靜態化
優化。
這篇文章總體結構不長,但希望大家邏輯要清晰,彼此間都有所收穫。
如果對你有所幫助,煩請大家也多多留言互動
、點個在看
、轉發
,這都是一種支持!混個臉熟什麼的,萬一下期贈書活動中選中你了呢!好了,就簡單介紹這麼多吧,我們下期再見!
來和上萬名讀者一起見證彼此成長!
掃描下方二維碼,添加傑哥微信,備註:地區/城市-職業方向/學校-暱稱
,即可加入傑哥的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技術乾貨文章,以及不定期的分享學習資料,實用工具,面試經驗
等,當然了還有內推機會
哦,期待你的關注!