主頁 > 作業系統 > 009.Nginx快取配置

009.Nginx快取配置

2020-09-14 09:26:50 作業系統

一 瀏覽器快取

1.1 快取概述

快取對于Web至關重要,尤其對于大型高負載Web站點,Nginx快取可作為性能優化的一個重要手段,可以極大減輕后端服務器的負載,通常對于靜態資源,即較少經常更新的資源,如圖片,css或js等進行快取,從而在每次重繪瀏覽器的時候,不用重新請求,而是從快取里面讀取,這樣就可以減輕服務器的壓力, Nginx設定快取有兩種方式:
  • proxy_cache_path和proxy_cache
  • Cache-Control和Pragma
對于站點中不經常修改的靜態內容(如圖片,JS,CSS),可以在服務器中設定expires過期時間,控制瀏覽器快取,達到有效減小帶寬流量,降低服務器壓力的目的,

1.2 快取機制

  • 瀏覽器無快取
瀏覽器請求 ---> 無快取 ---> 請求WEB服務器 ---> 請求回應 ---> 呈現
  • 瀏覽器有快取
瀏覽器請求 ---> 有快取 ---> 校驗過期 ---> 是否有更新 ---> 呈現
  • 校驗是否過期
Expires HTTP1.0, Cache-Control(max-age) HTTP1.1 協議中Etag頭資訊校驗 Etag () Last-Modified頭資訊校驗 Last-Modified (具體時間)

1.3 Nginx快取型別

  • 服務器快取
clipboard
  • 代理快取
clipboard
  • 客戶端快取
clipboard

1.4 Nginx代理快取原理

clipboard 第一步:客戶端第一次向Nginx請求資料A; 第二步:當Nginx發現快取中沒有資料A時,會向服務端請求資料A; 第三步:服務端接收到Nginx發來的請求,則回傳資料A到Nginx,并且快取在Nginx; 第四步:Nginx回傳資料A給客戶端應用; 第五步:客戶端第二次向Nginx請求資料A; 第六步:當Nginx發現快取中存在資料A時,則不會請求服務端; 第七步:Nginx把快取中的資料A回傳給客戶端應用,

1.5 快取內容

網頁快取是由HTTP訊息頭中的"Cache-control"來控制的,常見的取值有private、no-cache、max-age、must-revalidate等,默認為private, 其作用根據不同的重新瀏覽方式分為以下幾種情況,
Cache-directive 說明
public 所有內容都將被快取(客戶端和代理服務器都可快取),
private 內容只快取到私有快取中(僅客戶端可以快取,代理服務器不可快取),
no-cache 必須先與服務器確認回傳的回應是否被更改,然后才能使用該回應來滿足后續對同一個網址的請求,因此,如果存在合適的驗證停牌(ETag),no-cache會發起往返通信來驗證快取的回應,如果資源未被更改,可以避免下載,
no-store 所有內容都不會被快取到快取或Internet臨時檔案中,強制快取和對比快取都不會觸發,
must-revalidation.proxy-revalidation 如果快取內容失敗,請求必須發送到服務器、代理以進行重新驗證,
max-age=xxx(xxx is numeric) 快取的內容將在xxx秒失效,這個選項只在HTTP 1.1可用,并如果和Last-Modified一起使用時,優先級較高,

1.6 快取規則

默認情況下,NGINX尊重Cache-Control源服務器的標頭,它不快取回應Cache-Control設定為Private,No-Cache或No-Store或Set-Cookie在回應頭,NGINX只快取GET和HEAD客戶端請求, 如下配置可覆寫這些默認值:
  • proxy_buffering默認為on,若proxy_buffering設定為off,則NGINX不會快取回應,
  • proxy_ignore_headers可以配置忽略Cache-Control:
  1 location /images/ {
  2     proxy_cache my_cache;
  3     proxy_ignore_headers Cache-Control;
  4     proxy_cache_valid any 30m;
  5     # ...
  6 }

二 Nginx快取配置項

2.1 expires配置

語法:expires [modified] time; expires epoch | max | off; 默認值:expires off; #靜態快取 作用:Expires是服務端回傳的到期時間,如果下一次請求如果小于服務端回傳的過期時間,則直接使用快取資料,Expires針對HTTP1.0的東西,當前通常瀏覽器默認都是使用HTTP1.1,而且由于該值是有服務端生成,而客戶端的時間和服務端的時間有可能不一致,導致存在一定誤差,所以HTTP1.1使用Cache-Control替代, 可配置段:http, server, location, if in location 引數釋義: max啟用后為:Expires: Thu, 31 Dec 2037 23:55:55 GMT Cache-Control: max-age=315360000 (10年); epoch啟用后為:Expires: Thu, 01 Jan 1970 00:00:01 GMT Cache-Control: no-cache; time:設定具體時間,可以攜帶單位(通過@),如:表示一天內的下午3點30分后失效expires @15h@30m;time是負數:表示”Cache-Control: no-cache”;time是正數或零:”Cache-Control: max-age=t”,其中t單位為秒, 配置示例:
  1 server {
  2     listen       80;
  3     server_name  xxx.xxx.com;
  4     root         /app/xxx/html/;
  5     location ~ .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$
  6     {
  7         expires      7d;
  8     }
  9 
 10     location ~ .*\.(?:js|css)$
 11     {
 12         expires      7d;
 13     }
 14 
 15     location ~ .*\.(?:htm|html)$    #不快取html
 16     {
 17         add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
 18     }
 19 }
對于http協議頭Cache-Control,其值釋義如下:
  • Public:指示回應可被任何快取區快取,
  • Private:指示對于單個用戶的整個或部分回應訊息,不能被共享快取處理,這允許服務器僅僅描述當用戶的部分回應訊息,此回應訊息對于其他用戶的請求無效,
  • no-cache:指示請求或回應訊息不能快取,
  • no-store:用于防止重要的資訊被無意的發布,在請求訊息中發送將使得請求和回應訊息都不使用快取,
  • max-age:指示客戶機可以接收生存期不大于指定時間(以秒為單位)的回應,
  • min-fresh:指示客戶機可以接收回應時間小于當前時間加上指定時間的回應,
  • max-stale:指示客戶機可以接收超出超時期間的回應訊息,如果指定max-stale訊息的值,那么客戶機可以接收超出超時期指定值之內的回應訊息,

2.2 proxy_cache配置

語法:proxy_cache zone | off; 默認:proxy_cache off; 可配置段:http, server, location 作用:設定是否開啟對后端回應的快取,如果開啟的話,引數值就是zone的名稱, 示例:
  1 proxy_cache mycache;

2.3 proxy_cache_path配置

語法:proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size[inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time]; 默認值:—— 可配置段:http 作用:指定快取位置、快取名稱、記憶體中快取內容元資料資訊大小限制、快取總大小限制,快取位置是一個目錄應該先創建好,nginx并不會幫我們創建這個快取目錄, 引數釋義:
  • path:定義快取檔案存放位置;
  • levels:定義快取路徑的目錄層級,默認所有快取檔案都放在上面指定的根路徑中,最多三級,每層目錄長度為1或2位元組;
  • keys_zone:name表示共享記憶體名稱,用于在共享記憶體中定義一塊存盤區域來存放快取的 key 和 metadata(類似于使用次數),這樣 nginx 可以快速判斷一個 request 是否命中快取,由proxy_cache指令使用;size表示共享記憶體大小,1mb大約可以存放8000個key;
  • max_size:設定快取大小的上限,它是可選的,不指定值允許快取增長以使用所有可用磁盤空間,當快取大小達到限制時,稱為快取管理器的行程將洗掉最近最少用于將快取大小恢復到限制之下的檔案;
  • inactive:在inactive時間內沒有被訪問的快取會被淘汰掉,默認是10分鐘;
  • use_temp_path:如果為 off,則 nginx 會將快取檔案直接寫入指定的 cache 檔案中,而不使用 temp_path 指定的臨時存盤路徑,
注意:inactive 和 expired 配置項的含義是不同的,expired 只是判斷過期時間,不會洗掉快取;而 inactive 是直接洗掉過期快取, 配置示例:
  1 http {
  2     ...
  3     // 快取目錄:/data/nginx/cache
  4     // 快取名稱:one
  5     // 快取占用記憶體空間:10m
  6     // 快取目錄級別為2
  7     // 快取最大時間為60分鐘
  8     // 加載器每次迭代程序最多執行300毫秒
  9     // 加載器每次迭代程序中最多加載200個檔案
 10     // 快取硬碟空間最多為 200m
 11     proxy_cache_path /data/nginx/cache  levels=1:2 keys_zone=one:10m inactive=60m loader_threshold=300 loader_files=200 max_size=200m;
 12     server {
 13         listen 8080;
 14         // 使用名稱為one的快取
 15         proxy_cache one;
 16         location / {
 17             // 此location中使用默認的快取配置
 18             proxy_pass http://backend1;
 19         }
 20         location /some/path {
 21             proxy_pass http://backend2;
 22         // 快取有效期為1分鐘
 23             proxy_cache_valid any 1m;
 24             // 被請求3次以上時才快取
 25             proxy_cache_min_uses 3;
 26         // 請求中有下面引數值時不走快取
 27             proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;
 28         }
 29     }
 30 }
提示:在如上快取作業中有兩個附加行程:
  • 快取管理器:定期檢查快取狀態,看快取總量是否超出限制,如果超出,就移除其中最少使用的部分
  • 快取加載器:加載器只在nginx啟動后運行一次,把快取內容的元資料資訊加載到記憶體空間,如果一次性加載全部快取資訊,會大量消耗資源,使nginx在啟動后的幾分鐘里變慢,為避免此問題,有3種加載策略:
  • loader_threshold:指定每次加載執行的時間
  • loader_files:每次最多加載的數量
  • loader_sleeps:每次加載的延時

2.3 proxy_cache_valid配置

語法:proxy_cache_valid [code ...] time; 默認值:—— 可配置段:http, server, location 作用:默認情況下,快取的內容是長期存留的,除非快取的總量超出限制,此欄位可配置不同的回應碼快取不同的時長,即指定快取的有效期, 示例: 回應狀態碼為200 302時,10分鐘有效; 回應狀態碼為404時,1分鐘有效;
  1 ……
  2 proxy_cache_valid 200 302 10m;
  3 proxy_cache_valid 404      1m;
  4 ……
對應任何狀態碼,5分鐘有效;
  1 ……
  2 proxy_cache_valid any 5m;
  3 ……

2.4 proxy_cache_methods配置

語法:proxy_cache_methods GET | HEAD | POST ...; 默認值:proxy_cache_methods GET HEAD; 可配置段:http, server, location 作用:對哪些方法的請求進行快取, 提示:更多快取配置參考:https://shuwoom.com/?p=4311、https://linux.cn/article-5945-1.html, 第三方快取模塊參考:https://www.jianshu.com/p/1ba7d91afa39,

2.5 proxy_cache_key string

語法:proxy_cache_key string; 默認值:proxy_cache_key $scheme$proxy_host$request 可配置段:http, server, location 作用:用于設定不同維度進行快取,即給快取設定key,如快取url, 示例:  

2.6 proxy_cache_min_uses

語法:proxy_cache_min_uses string; 默認值:proxy_cache_min_uses 1; 可配置段:http, server, location 作用:指定請求至少被發送了多少次以上時才快取,可以防止低頻請求被快取, 示例:
  1 ……
  2 proxy_cache_min_uses 5;
  3 ……
  4 

2.7 proxy_cache_bypass

語法:proxy_cache_bypass string; 默認值:—— 可配置段:http, server, location 作用:指定哪些回應在某些值不為慷訓不為0的情況下不走快取, 示例:
  1 ……
  2 proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment;
  3 ……
  4 

2.8 proxy_no_chache string

語法:proxy_no_chache string; 默認值:—— 可配置段:http, server, location 作用:指定定哪些請求不被快取,即回應來自原始服務器而不是快取, 示例:
  1 ……
  2 proxy_no_chache $cookie_nocache $arg_nocache $arg_nocache;
  3 ……
  4 

2.9 proxy_cache_use_stale

語法:proxy_cache_use_stale off | on; 默認值:proxy_cache_use_stale off; 可配置段:http, server, location 作用:指定在后端服務器在回傳什么狀態碼的情況下可以使用過期的快取, 示例:
  1 ……
  2 proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
  3 ……
  4 

2.10 proxy_cache_lock

語法:proxy_cache_lock off | on; 默認值:proxy_cache_lock off; 可配置段:http, server, location 作用:默認不開啟,開啟的話則每次只能有一個請求更新相同的快取,其他請求要么等待快取有資料要么限時等待鎖釋放,通常在多個客戶端請求快取未命中時,只有第一個請求可以發向原服務器,其他請求要等待第一個回應回傳或者超時后,使用快取回應客戶端,該引數可以合并回源請求,減輕峰值流量下的壓力, 示例:
  1 ……
  2 proxy_cache_lock on;
  3 ……
  4 

2.11 proxy_cache_lock_timeout

語法:proxy_cache_lock_timeout time; 默認值:proxy_cache_lock_timeout 5s; 可配置段:http, server, location 作用:等待快取鎖超時之后將直接請求后端,結果不會被快取, 示例:
  1 ……
  2 proxy_cache_lock_timeout 5s;
  3 ……
  4 

三 快取配置實體

提示:本實驗結合反向代理演示最佳,具體配置參考《010.Nginx正反代理》步驟六,

參考檔案:https://www.myfreax.com/nginx-caching-guide/,

四 快取清除

4.1 清除快取配置

  1 location ~ /purge(/.*) {
  2         allow       127.0.0.1;
  3         allow       192.168.55.0/24;
  4         deny        all;
  5         proxy_cache_purge cache_one $1$is_args$args;
  6     }
注意:使用proxy_cache_purge清除快取,必須提前安裝ngx_cache_purge模塊,安裝模塊必須基于編譯安裝的Nginx,之后使用url訪問即可清除對應快取,如cache.linuxds.com/purge/nginx.png即可清除cache.linuxds.com/nginx.png此檔案的快取,

4.2 腳本清除

清除快取腳本如下,必須在快取服務器上執行, [root@nginx01 ~]# vi nginx_cache_clean.sh
  1 #!/bin/sh
  2 #****************************************************************#
  3 # ScriptName: nginx_cache_clean.sh
  4 # Author: null
  5 # Create Date: 2020-06-24 00:03
  6 # Modify Author: xhy
  7 # Modify Date: 2020-06-24 00:03
  8 # Version:
  9 #***************************************************************#
 10 echo -e "\n"
 11 echo -n -e "\e[35;1m請輸入Nginx Proxy_cache快取的具體路徑(提示:可使用Tab補全!)\e[0m\e[34;5m:\e[0m"
 12 read -e path
 13 CACHE_DIR=$path
 14 echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
 15 echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
 16 echo -n -e "\e[32;1m請輸入洗掉操作的型別:\n1.按檔案型別洗掉\t2.按具體檔案名洗掉\t3.按檔案目錄洗掉\n:"
 17 read action
 18      case $action in
 19 1)
 20 echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
 21 echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
 22 echo -n -e "\e[34;1m 請輸入你要洗掉的快取檔案型別(多個引數可空格隔開)\e[0m\e[34;5m:\e[0m"
 23 read -a FILE
 24 for i in `echo ${FILE[*]}|sed 's/ /\n/g'`
 25 do
 26 grep -r -a  \.$i ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}'  > /tmp/cache_list.txt
 27  for j in `cat /tmp/cache_list.txt`
 28 do
 29    rm  -rf  $j
 30    echo "$i     $j 洗掉成功!"
 31  done
 32 done
 33 ;;
 34 2)
 35 echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
 36 echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
 37 echo -n -e "\e[33;1m 請輸入你要洗掉的快取檔案具體名稱(多個引數可空格隔開)\e[0m\e[34;5m:\e[0m"
 38 read -a FILE
 39 for i in `echo ${FILE[*]}|sed 's/ /\n/g'`
 40 do
 41 grep -r -a  $i ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}'  > /tmp/cache_list.txt
 42  for j in `cat /tmp/cache_list.txt`
 43 do
 44    rm  -rf  $j
 45    echo "$i  $j 洗掉成功!"
 46  done
 47 done
 48 ;;
 49 3)
 50 echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
 51 echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
 52 echo -n -e "\e[33;1m支持的模式有:\n1.清除網站cache目錄下的所有快取:cache.aa.com/data/cache/\n2.清除網站shop下的所有快取:cache.aa.com/data/upload/shop\n3.清除網站根目錄下的所有快取:cache.aa.com\e[0m\n"
 53 echo -n -e "\e[34;1m 請輸入你要洗掉的快取檔案具體目錄\e[0m\e[34;5m:\e[0m"
 54 read -a FILE
 55 for i in `echo ${FILE[*]}|sed 's/ /\n/g'`
 56 do
 57 grep -r -a  "$i" ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}'  > /tmp/cache_list.txt
 58  for j in `cat /tmp/cache_list.txt`
 59 do
 60    rm  -rf  $j
 61    echo "$i  $j 洗掉成功!"
 62  done
 63 done
 64 ;;
 65 *)
 66 echo "輸入錯誤,請重新輸入"
 67 ;;
 68 esac
參考檔案:https://lichi6174.github.io/nginx-cache/,

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/33298.html

標籤:Linux

上一篇:Java應用服務器之tomcat基礎配置(一)

下一篇:從OS的層次理解網路I/O模型

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more