nginx 動靜分離、gzip壓縮、負載均衡、root/alias

在Nginx中,動靜分離、gzip壓縮、負載均衡以及rootalias指令是常見的配置和優化點。下面我將分別解釋這些概念和如何配置它們。

動靜分離

動靜分離是指將動態請求和靜態請求分開處理,由不同的服務器或Nginx的不同位置來處理。這樣可以提高網站的性能和可擴展性。

配置示例

假設你的靜態文件(如圖片、CSS、JS等)存放在/var/www/static目錄下,你可以這樣配置Nginx:

location /static/ {root /var/www/;
}location / {proxy_pass http://backend_servers;  # 假設你有一個叫做backend_servers的upstream定義
}

這樣,當用戶請求/static/some.jpg時,Nginx會從/var/www/static/some.jpg中提供文件。而其他的請求(如/index.html)則會被代理到backend_servers

gzip壓縮

gzip壓縮可以減少傳輸到客戶端的數據量,從而加快網頁加載速度。

配置示例

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1024;
gzip_comp_level 6;
gzip_vary on;
gzip_proxied any;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";

負載均衡

負載均衡是將請求分發到多個后端服務器上的技術,以提高系統的整體性能和可靠性。

配置示例

http {upstream backend_servers {server backend1.example.com;server backend2.example.com weight=2;  # 這個服務器將接收雙倍的請求server 192.0.2.1 backup;  # 備份服務器,在其他服務器都不可用時才會使用}server {listen 80;location / {proxy_pass http://backend_servers;}}
}

root 和 alias

rootalias都是用來指定文件位置的指令,但它們的工作方式有所不同。

  • root:Nginx會將請求的URI附加到root指令指定的路徑后面來形成完整的文件路徑。
  • alias:Nginx會使用alias指令指定的路徑來替換請求的URI。

配置示例

使用root

location /images/ {root /var/www/;
}
# 請求/images/some.jpg將查找/var/www/images/some.jpg

使用alias

location /images/ {alias /var/www/static/;
}
# 請求/images/some.jpg將查找/var/www/static/some.jpg,注意這里不會添加/images/到/var/www/static/后面

在大多數情況下,使用root更為直觀和方便,但當你需要映射到非標準的文件路徑時,alias會很有用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14375.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14375.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14375.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot 啟動報錯,EnableConfigurationProperties 注解跳坑記

使用SpringBoot 腳手架搭建的一個簡單的 web demo ,開啟了屬性自動注入,配置文件如下: Setter Getter Configuration ConfigurationProperties(prefix "com.ff") EnableConfigurationProperties(FFProperties.class) public clas…

今日刷三題(day14):ISBN號碼+kotori和迷宮+矩陣最長遞增路徑

題目一:ISBN號碼 題目描述: 每一本正式出版的圖書都有一個ISBN號碼與之對應,ISBN碼包括9位數字、1位識別碼和3位分隔符,其規定格式如“x-xxx-xxxxx-x”,其中符號“-”是分隔符(鍵盤上的減號)&…

STM32使用旋轉編碼開關

一、旋轉編碼開關如何工作 編碼器內部有一個開槽圓盤,連接到公共接地引腳 C。它還具有兩個接觸針 A 和 B,如下所示。 當您轉動旋鈕時,A 和 B 按照特定順序與公共接地引腳 C 接觸,具體順序取決于轉動旋鈕的方向。 當它們與公共地接…

在 package.json 文件中,版本號前的 ^ 符號含義

在 package.json 文件中,版本號前的 ^ 符號有特定的含義,它控制了包依賴的版本范圍。 具體來說,^ 符號表示兼容性范圍符號,允許安裝與指定版本兼容的更新版本。 例如,“vue”: “^3.0.0” 意味著: 可以安…

Web3 游戲平臺 Creo Engine 銷毀代幣總量的20%,以促進長遠發展

Creo Engine 5月16日進行了第三次代幣銷毀,這次的銷毀占代幣總量的 20%。一共銷毀了2億 $CERO 代幣,市場價值接近 2000 萬美元。 Creo Engine 致力于連接世界、為玩家提供一站式游戲中心,并提升 Web3 游戲體驗。 Creo Engine 發布于2022年&am…

USB抓包工具:bushound安裝及使用

一、環境搭建 下載busbound6.01安裝包,安裝完成,重啟電腦。 二、工具配置 按照下圖配置工具: 使能自動識別新設備 2. 設置抓取數據的容量 三、抓包 回到capture選項卡,在頁面的右下角有個run的按鈕,點擊使能&…

RedHat9 | 磁盤管理

硬盤分區類型 MBR分區方案 MBR也被稱為主引導記錄,它存在0柱面0磁道0扇區內,在磁盤的第一個扇區內,大小為512字節 512字節包含:446字節初始化程序加載器、64字節分區表、2字節校驗碼由于每個分區為16字節,所以MBR只…

Git配置詳解

天行健,君子以自強不息;地勢坤,君子以厚德載物。 每個人都有惰性,但不斷學習是好好生活的根本,共勉! 文章均為學習整理筆記,分享記錄為主,如有錯誤請指正,共同學習進步。…

js實現元素根據鼠標滾輪滾動向左右上下滑動著從模糊到清楚顯示出來

html代碼 <div ref{test} id"animatedElement" className"not-animated"> <div style{{width:"100px",height:"50px",backgroundColor:"red"}}> </div> </div> JS代碼 const te…

用智能插件(Fitten Code: Faster and Better AI Assistant)修改好了可以持久保存的vue3留言板

天際 第一修改是選項式&#xff1a; <!-- 模板結構 --> <template><div><textarea placeholder"請輸入備注內容" v-model"newItem"></textarea><button click"addItem">添加</button><hr><…

Vue2+Element 封裝評論+表情功能

有需要的小伙伴直接拿代碼即可&#xff0c;不需要下載依賴&#xff0c;目前是初始版本&#xff0c;后期會進行代碼的優化。 評論組件如下&#xff1a; 創建 comment.vue 文件。 表情組件 VueEmoji.vue 在評論組件中使用。 <template><div class"comment"…

《主對角線求和》

描述 有一個n行n列的二維數組&#xff0c;請你求出二維數組的主對角線上的所有數字的和是多少。 輸入描述 第一行一個整數n&#xff0c;代表下面輸入的是n行n列(2≤n≤10)的二維數組&#xff1b; 接下來n行&#xff0c;每行n列&#xff0c;表示二維數組的每個元素各是多少。 …

數字孿生技術在管理中有哪些實際應用?

隨著科學技術的不斷提高&#xff0c;數字孿生技術也在不斷的從理論應用至現實&#xff0c;并且涉及領域較為廣泛。 在生產運營管理層面&#xff0c;通過構建數字孿生模型&#xff0c;企業可以精準模擬和優化生產線&#xff0c;實現生產流程的智能化和高效化。比如&#xff0c;…

TypeScript-搭建編譯環境

搭建編譯環境 TypeScript 編寫的代碼是無法直接在js引擎( 瀏覽器 / Nodejs )中運行的&#xff0c;最終還需要經過編譯成js代碼才可以正常運行 搭建手動編譯環境 1?? 全局安裝 typescript 包&#xff08;編譯引擎&#xff09; -> 注冊 tsc 命令 npm i -g typescript 2…

下拉框操作/鍵鼠操作/文件上傳

在我們做UI自動化測試的時候&#xff0c;會有一些元素需要特殊操作&#xff0c;比如下拉框操作/鍵鼠操作/文件上傳。 下拉框操作 在我們很多頁面里有下拉框的選擇&#xff0c;這種元素怎么定位呢&#xff1f;下拉框分為兩種類型&#xff1a;我們分別針對這兩種元素進行定位和…

2024最新 Jenkins + Docker 實戰教程(五)- 配置Gitee Webhooks實現自動構建部署

&#x1f604; 19年之后由于某些原因斷更了三年&#xff0c;23年重新揚帆起航&#xff0c;推出更多優質博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有堅忍不拔之志 &#x1f390; 個人CSND主頁——Mi…

Packet Tracer-HSRP+DHCPv4+VLAN間路由+以太通道綜合實驗

實驗拓撲&#xff1a; 實驗內容&#xff1a; VLAN及VLAN間路由的配置&#xff0c;以太通道的配置&#xff0c;STP的根調整&#xff0c;DHCPv4的配置&#xff0c;首跳冗余HSRP的配置。 實驗最終結果&#xff1a; PC可以自動獲取到DHCP-Server分配的IP地址&#xff0c;實現首跳…

【Sentinel】Sentinel配置zk持久化

代碼 import cn.hutool.core.util.StrUtil; import com.alibaba.csp.sentinel.datasource.ReadableDataSource; import com.alibaba.csp.sentinel.datasource.zookeeper.ZookeeperDataSource; import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule; import com.a…

信息系統工程師--八大績效域-交付績效域

信息系統工程師的八大績效域包括&#xff1a;干系人、團隊、開發方法和生命周期、項目工作、規劃、交付、度量、不確定性。 預期目標 1、項目有助于實現業務目標和戰略 2、項目實現了預期成果 3、在預定時間內實現了項目收益 4、項目團隊對需求有清晰的理解 5、干系人接受…

GitLab的原理及應用詳解(五)

本系列文章簡介: 隨著軟件開發的不斷進步和發展,版本控制系統成為了現代軟件開發過程中不可或缺的一部分。而GitLab作為其中一種流行的版本控制工具,在軟件開發領域享有廣泛的應用。GitLab不僅提供了強大的版本控制功能,還集成了項目管理、持續集成和部署、代碼審查等多個功…