亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Nexus3 內(nèi)網(wǎng)統(tǒng)一私庫:Maven/YUM/APT/npm 搭建與排錯(cuò)

Nexus3 內(nèi)網(wǎng)統(tǒng)一私庫:Maven/YUM/APT/npm 搭建與排錯(cuò) 內(nèi)網(wǎng)做構(gòu)建這件事最容易被低估的就是依賴獲取這一環(huán)。項(xiàng)目一多、語言一雜Maven 拉 jar、YUM 裝 rpm、APT 裝 deb、npm 裝 node 模塊四套東西各自連各自的公網(wǎng)源誰斷了都得停下等。我這邊的研發(fā)環(huán)境就是這么個(gè)情況十幾條流水線混著 Java、Go 打包腳本、CentOS 基礎(chǔ)鏡像和 Ubuntu 構(gòu)建機(jī)新人入職配一次環(huán)境要折騰大半天。后來用Nexus3在內(nèi)網(wǎng)做了一套統(tǒng)一私庫把maven、yum、apt、nodejs四類倉庫全部收口到一臺(tái)機(jī)器上配好之后客戶端只需要改一個(gè)地址就能跑通全流程。這篇就把這套私庫環(huán)境從選型、安裝、建倉、客戶端配置到排錯(cuò)按我實(shí)際落地的順序完整拆一遍參數(shù)和命令都能直接抄也把我踩過的幾個(gè)坑提前說出來。1. 方案先想清楚Nexus3 擺什么位置四類倉庫怎么分工動(dòng)手裝之前先把這臺(tái)機(jī)器到底承擔(dān)什么角色想明白比裝完再返工省事得多。私庫這東西本質(zhì)上是內(nèi)網(wǎng)和外網(wǎng)之間的一個(gè)緩存加中轉(zhuǎn)層它既要把公網(wǎng)的東西拉下來存住又要能收下團(tuán)隊(duì)自己產(chǎn)出的包還要在客戶端眼里只暴露一個(gè)統(tǒng)一的入口地址。Nexus3 恰好把這三種能力做成了三種倉庫類型proxy 負(fù)責(zé)代理外部源并緩存hosted 負(fù)責(zé)托管內(nèi)部產(chǎn)物group 負(fù)責(zé)把前兩者聚合成一個(gè) URL。理解了這一層后面四類倉庫的搭法其實(shí)是同一套邏輯換個(gè)協(xié)議而已。1.1 內(nèi)網(wǎng)直連公網(wǎng)的三個(gè)現(xiàn)實(shí)痛點(diǎn)第一個(gè)痛點(diǎn)是速度和穩(wěn)定性。公網(wǎng)源在國(guó)內(nèi)訪問經(jīng)常抖動(dòng)Maven 中央倉庫拉一個(gè)稍大的依賴樹就能拖到十幾分鐘npm 裝一個(gè)前端工程動(dòng)輒幾百個(gè)包一旦中途超時(shí)整個(gè)npm install從頭再來。私庫把包緩存在本地磁盤第二次開始就是千兆內(nèi)網(wǎng)速度差別非常直觀。第二個(gè)痛點(diǎn)是安全和審計(jì)。開發(fā)機(jī)的構(gòu)建腳本如果直接連公網(wǎng)源等于給每臺(tái)機(jī)器都開了對(duì)外的下載權(quán)限一旦某個(gè)公網(wǎng)包被投毒內(nèi)網(wǎng)很難察覺也沒法追溯到底是誰在什么時(shí)候引入了哪個(gè)版本。私庫把下載入口收斂成一臺(tái)機(jī)器所有包的進(jìn)出都有記錄還能在 hosted 倉庫里做白名單式的內(nèi)部包發(fā)布。第三個(gè)痛點(diǎn)是離線可用。很多能力受限的機(jī)房、隔離網(wǎng)段、臨時(shí)搭建的測(cè)試環(huán)境根本連不上公網(wǎng)這時(shí)候如果沒有一套本地倉庫整個(gè)編譯流程直接卡死。私庫里緩存過的依賴在斷網(wǎng)狀態(tài)下依然能完整安裝這對(duì)做交付、做演示、給客戶部署的場(chǎng)景尤其關(guān)鍵。把這三條想清楚你就知道這套東西不是錦上添花而是基礎(chǔ)設(shè)施的一部分。1.2 proxy、hosted、group 三種倉庫的定位差異很多人第一次打開 Nexus3 新建倉庫的界面會(huì)懵類型太多不知道選哪個(gè)。其實(shí)抓住三種角色的分工就清楚了。proxy是代理加緩存你給它一個(gè)遠(yuǎn)端 URL它第一次請(qǐng)求時(shí)去遠(yuǎn)端拉拉到之后存在本地之后同樣的請(qǐng)求直接命中緩存Maven 中央倉庫、npm 官方源、各發(fā)行版的 yum/apt 源都屬于這一類。hosted是托管內(nèi)部產(chǎn)物團(tuán)隊(duì)自己編譯出來的 jar、打好的 rpm、deb 包、私有 npm 模塊都往這里發(fā)。它不連外網(wǎng)只接受上傳和下載是內(nèi)部交付的唯一可信來源。hosted 又分 Release 和 Snapshot 兩種版本策略這個(gè)在 Maven 里尤其重要后面會(huì)細(xì)說。group是聚合入口它自己不存東西只是把若干個(gè) proxy 和 hosted 按順序拼在一起客戶端訪問 group 的地址時(shí)Nexus 依次去成員倉庫里找找到就返回。對(duì)客戶端來說永遠(yuǎn)只需要配一個(gè) group 地址既拿到了公網(wǎng)緩存又拿到了內(nèi)部包還省得在配置里寫一堆 URL。我一般給每個(gè)協(xié)議都建一個(gè) group命名統(tǒng)一成xxx-group客戶端配置里只出現(xiàn)這一個(gè)地址。1.3 部署形態(tài)選型Docker 拉起還是裸機(jī) installNexus3 官方提供兩種主流部署方式。Docker 方式最省事拉個(gè)鏡像掛個(gè)數(shù)據(jù)卷就能跑升級(jí)就是換個(gè) tag回滾就是換回舊 tag對(duì)不熟悉 Java 服務(wù)的人特別友好。裸機(jī)安裝是把官方 tar 包解壓到某個(gè)目錄再用 systemd 托管好處是不依賴容器運(yùn)行時(shí)資源占用略低出問題時(shí)排查鏈路更短。我實(shí)際兩套都跑過。開發(fā)測(cè)試環(huán)境用 Docker因?yàn)樾枰l繁重建生產(chǎn)性的私庫用裸機(jī)因?yàn)檫@臺(tái)機(jī)器上還掛著別的服務(wù)不想再引入一層容器網(wǎng)絡(luò)。判斷標(biāo)準(zhǔn)很簡(jiǎn)單你的機(jī)器上已經(jīng)有成熟的容器運(yùn)維體系就選 Docker如果是一臺(tái)孤立的虛擬機(jī)、后續(xù)沒人專門維護(hù)容器就裸機(jī)。兩種方式的數(shù)據(jù)目錄都是同一個(gè)結(jié)構(gòu)遷移時(shí)把數(shù)據(jù)目錄拷過去就行所以先選哪個(gè)都不算鎖死。2. 部署前的資源估算與 Nexus3 落地安裝資源這塊不能拍腦袋給少了后面 OOM給多了浪費(fèi)。我按自己的經(jīng)驗(yàn)給一套估算方法然后分別給出 Docker 和裸機(jī)的完整落地步驟。2.1 JVM 堆、磁盤和內(nèi)存的估算過程N(yùn)exus3 是個(gè) Java 應(yīng)用跑在 JVM 里默認(rèn)的最大堆是 2703MB。這個(gè)數(shù)字不是隨便定的官方給的經(jīng)驗(yàn)是堆內(nèi)存至少要能放下你最大單次請(qǐng)求涉及的對(duì)象而私庫場(chǎng)景里最大的一塊通常是首次代理一個(gè)大依賴樹或者一個(gè)大鏡像層時(shí)的臨時(shí)緩沖。我的估算方式是基礎(chǔ)堆 2GB 打底然后看你的倉庫規(guī)模。如果只是給幾十個(gè)項(xiàng)目做 Maven 加 npm 代理2GB 到 4GB 足夠。如果還要緩存大量 rpm/deb 并且并發(fā)構(gòu)建機(jī)器超過二十臺(tái)建議給到 6GB 到 8GB物理內(nèi)存留出堆的 1.5 到 2 倍因?yàn)?JVM 除了堆還有直接內(nèi)存、元空間、線程棧和文件緩存。磁盤是另一個(gè)大頭。Nexus3 的數(shù)據(jù)目錄里blob store 會(huì)隨著緩存不斷增長(zhǎng)。一個(gè)中等規(guī)模的 Java 團(tuán)隊(duì)一年下來 Maven 緩存吃掉 50GB 到 200GB 很正常如果還代理 npm 和系統(tǒng)包翻倍也不奇怪。我的做法是數(shù)據(jù)目錄單獨(dú)掛一塊盤初始給 500GB配好清理策略并且提前把監(jiān)控做上別等到磁盤寫滿才發(fā)現(xiàn)。提示Nexus3 官方鏡像里 JVM 參數(shù)通過環(huán)境變量INSTALL4J_ADD_VM_PARAMS傳入裸機(jī)安裝則改bin/nexus.vmoptions。改完必須重啟進(jìn)程才生效在線改文件沒用。場(chǎng)景建議堆內(nèi)存建議磁盤說明個(gè)人或小團(tuán)隊(duì)只做 Maven 代理2GB100GB單機(jī)夠用注意清理中型團(tuán)隊(duì)Maven npm4GB500GB并發(fā)十臺(tái)以內(nèi)比較穩(wěn)多語言混合含 yum/apt6GB 到 8GB1TB需要配清理策略和監(jiān)控2.2 Docker 方式十幾分鐘拉起一個(gè)可用的私庫先建好數(shù)據(jù)目錄并授權(quán)。Nexus3 容器內(nèi)以 uid 200 運(yùn)行宿主機(jī)目錄權(quán)限不對(duì)會(huì)直接啟動(dòng)失敗這一步很多人會(huì)漏。sudo mkdir -p /data/nexus-data sudo chown -R 200:200 /data/nexus-data sudo chmod -R 775 /data/nexus-data然后用官方鏡像啟動(dòng)。注意把 JVM 參數(shù)和數(shù)據(jù)目錄一起傳進(jìn)去順便把 Java 的 preferences 目錄也指到數(shù)據(jù)卷里避免容器重建后配置丟失。docker run -d \ --name nexus3 \ --restart always \ -p 8081:8081 \ -v /data/nexus-data:/nexus-data \ -e INSTALL4J_ADD_VM_PARAMS-Xms4g -Xmx4g -XX:MaxDirectMemorySize4g -Djava.util.prefs.userRoot/nexus-data/javaprefs \ sonatype/nexus3:3.70.1啟動(dòng)完成后docker logs -f nexus3觀察日志出現(xiàn)Started Sonatype Nexus字樣就說明起來了。第一次啟動(dòng)會(huì)初始化數(shù)據(jù)庫通常要一到三分鐘機(jī)器慢的話更久別急著判定失敗。注意數(shù)據(jù)目錄權(quán)限問題是 Nexus3 啟動(dòng)失敗最常見的原因日志里一般會(huì)提示Permission denied或者直接卡住不輸出。遇到先查目錄屬主再查 SELinux。2.3 裸機(jī)安裝與 systemd 托管裸機(jī)安裝的步驟是先準(zhǔn)備 JDK再解壓 tar 包最后寫成 systemd 服務(wù)。Nexus3 各版本對(duì) JDK 的要求不一樣3.6x 之后的版本普遍要求 JDK 8 或 11動(dòng)手前一定去確認(rèn)對(duì)應(yīng)版本的官方要求別隨便裝個(gè)新版 JDK 上去。# 以 JDK 11 為例路徑按你實(shí)際安裝位置調(diào)整 sudo mkdir -p /opt/nexus sudo tar -zxvf nexus-3.70.1-02-unix.tar.gz -C /opt/nexus --strip-components1 sudo useradd -r -s /sbin/nologin nexus sudo chown -R nexus:nexus /opt/nexus改bin/nexus.vmoptions把堆參數(shù)調(diào)成你估算的值-Xms4g -Xmx4g -XX:MaxDirectMemorySize4g -XX:UnlockDiagnosticVMOptions -XX:LogVMOutput -XX:LogFile../sonatype-work/nexus3/log/jvm.log接著寫 systemd 單元讓進(jìn)程跟著系統(tǒng)啟動(dòng)崩潰也能自動(dòng)拉起來[Unit] DescriptionNexus Repository Manager Afternetwork.target [Service] Typeforking LimitNOFILE65536 ExecStart/opt/nexus/bin/nexus start ExecStop/opt/nexus/bin/nexus stop Usernexus Restarton-abort [Install] WantedBymulti-user.target寫完執(zhí)行systemctl daemon-reload再systemctl enable --now nexus。這里有個(gè)容易忽略的點(diǎn)LimitNOFILE要給足私庫并發(fā)高的時(shí)候文件句柄消耗很快默認(rèn) 1024 會(huì)在壓力上來后出現(xiàn)莫名其妙的連接失敗。我給到 65536實(shí)測(cè)很穩(wěn)。2.4 首次登錄必須做的三件事新版本 Nexus3 的初始密碼不再固定是admin/admin123而是隨機(jī)生成后寫在一個(gè)文件里Docker 方式在/nexus-data/admin.password裸機(jī)在sonatype-work/nexus3/admin.password。cat /data/nexus-data/admin.password拿到密碼后用admin登錄http://你的IP:8081系統(tǒng)會(huì)引導(dǎo)你改密碼。改完密碼只是第一步另外三件事我建議當(dāng)天就做完第一關(guān)掉匿名訪問或明確配置匿名可讀范圍第二刪掉默認(rèn)的 demo 倉庫避免誤用第三建一個(gè)專用的deploy用戶只給上傳權(quán)限CI 里用這個(gè)賬號(hào)不要用 admin。這三件事看著瑣碎但直接決定了后面私庫是不是安全可控。我見過不少環(huán)境圖省事一直用 admin 給所有客戶端發(fā)憑據(jù)一旦泄露就是全庫可寫可刪補(bǔ)救成本極高。3. Maven 私庫搭建hosted、proxy、group 三件套怎么拼Maven 是這套私庫里用得最多的部分也是最容易配錯(cuò)的部分。我的做法是固定建三個(gè)倉庫一個(gè) hosted 收內(nèi)部包一個(gè) proxy 代理中央倉庫一個(gè) group 把兩者聚合客戶端只認(rèn) group。3.1 建倉庫的順序和命名規(guī)范順序上建議先 hosted再 proxy最后 group因?yàn)?group 的成員列表在創(chuàng)建時(shí)就要選前面的沒建好后面選不到。命名我用固定的后綴區(qū)分maven-releases、maven-snapshots、maven-central、maven-public。這樣一看名字就知道類型后期維護(hù)和交接都省心。hosted 倉庫分兩個(gè)是刻意的。Release 版本的包一旦發(fā)布就不應(yīng)該被覆蓋Snapshot 版本可以反復(fù)覆蓋發(fā)布。把兩者分開可以在組策略和清理策略上差異化處理比如給 Snapshot 配定期清理給 Release 配置為不可重復(fù)部署。這個(gè)區(qū)分在做正式交付的時(shí)候非常有用。3.2 proxy 代理中央倉庫的幾個(gè)關(guān)鍵參數(shù)新建 maven2(proxy) 時(shí)遠(yuǎn)端地址填https://repo1.maven.org/maven2/其余參數(shù)大部分可以用默認(rèn)值但有兩個(gè)地方我調(diào)整過。一個(gè)是版本策略proxy 的Version policy保持Mixed即可因?yàn)橹醒雮}庫里既有 release 也有 snapshot。另一個(gè)是緩存過期時(shí)間默認(rèn)的Not Found Cache TTL是 1440 分鐘意思是某個(gè)包如果確定不存在1440 分鐘內(nèi)不再去遠(yuǎn)端查詢。這個(gè)值對(duì)內(nèi)網(wǎng)體驗(yàn)影響很大遇到構(gòu)建突然報(bào)找不到某個(gè)剛發(fā)布的版本先想想是不是被這個(gè)緩存擋了臨時(shí)可以把值改小或者手動(dòng)清理緩存。如果你的環(huán)境有穩(wěn)定的國(guó)內(nèi)鏡像可用也可以再建一個(gè) proxy 指向它然后在 group 里排到中央倉庫前面命中率更高。但要記住無論后面掛幾個(gè) proxy客戶端配置里永遠(yuǎn)只出現(xiàn) group 地址這是這套設(shè)計(jì)能穩(wěn)定運(yùn)行的前提。3.3 settings.xml 與 pom.xml 可直接抄的配置客戶端側(cè)主要改兩個(gè)文件。全局的settings.xml配鏡像和憑據(jù)項(xiàng)目的pom.xml配發(fā)布地址。先看settings.xml把鏡像指向 group同時(shí)在 servers 里放上傳憑據(jù)settings mirrors mirror idnexus/id namenexus private maven/name urlhttp://192.168.1.100:8081/repository/maven-public//url mirrorOf*/mirrorOf /mirror /mirrors servers server idnexus-releases/id usernamedeploy/username password你的部署密碼/password /server server idnexus-snapshots/id usernamedeploy/username password你的部署密碼/password /server /servers /settings這里mirrorOf用*表示接管所有倉庫請(qǐng)求。有人會(huì)擔(dān)心這樣連不上其他私有源解決辦法是在 group 里把那些源也建成 proxy 成員而不是在客戶端放開多個(gè)鏡像。保持客戶端配置單一后期換地址只需要改一處。pom.xml里加發(fā)布地址distributionManagement repository idnexus-releases/id urlhttp://192.168.1.100:8081/repository/maven-releases//url /repository snapshotRepository idnexus-snapshots/id urlhttp://192.168.1.100:8081/repository/maven-snapshots//url /snapshotRepository /distributionManagement配好之后mvn deploy就能把包推到私庫其他項(xiàng)目通過mvn clean package自動(dòng)從 group 拉取。3.4 快照版本與發(fā)布版本的策略區(qū)別這塊是我踩坑最多的地方。Release 倉庫默認(rèn)策略是Disable redeploy也就是同一個(gè)版本號(hào)不允許重復(fù)發(fā)布這是為了保證金版本不可變。如果你調(diào)試時(shí)反復(fù)發(fā)同一個(gè)版本號(hào)會(huì)收到 400 錯(cuò)誤報(bào)錯(cuò)信息里會(huì)提到 redeploy。解決辦法是要么升版本號(hào)要么臨時(shí)把倉庫策略改成 Allow redeploy但正式環(huán)境千萬別改否則版本就失去可信度了。Snapshot 倉庫則相反允許覆蓋每次發(fā)布自動(dòng)帶時(shí)間戳后綴??蛻舳死?snapshot 時(shí)會(huì)檢查遠(yuǎn)程的maven-metadata.xml所以如果你本地mvn -U還是拿到舊包很可能是 metadata 緩存沒刷新可以手動(dòng)觸發(fā)一次更新或者等緩存過期。實(shí)操心得給 Snapshot 倉庫單獨(dú)配一條清理策略比如保留最近 30 天或者每個(gè)包最多保留 10 個(gè)快照。不做這件事快照目錄會(huì)以肉眼可見的速度膨脹半年就能吃掉幾百 GB。4. YUM 私庫把 RPM 統(tǒng)一收口Java 團(tuán)隊(duì)之外只要涉及 CentOS、RHEL 一類的系統(tǒng)鏡像構(gòu)建就繞不開 YUM。私庫里做 YUM 的價(jià)值在于內(nèi)網(wǎng)機(jī)器不再需要各自配置一堆外網(wǎng)源所有 rpm 從一處下發(fā)離線環(huán)境也能裝。4.1 yum hosted 與 yum proxy 的建法差異新建時(shí)選yum (proxy)或yum (hosted)。proxy 的遠(yuǎn)端地址填你要代理的發(fā)行版源比如某個(gè)穩(wěn)定鏡像站的centos/7/os/x86_64/路徑hosted 不填遠(yuǎn)端只等著你上傳 rpm。這里有個(gè)版本相關(guān)的細(xì)節(jié)必須提前確認(rèn)Nexus3 對(duì) yum hosted 的支持在較新版本才完善早期版本上傳 rpm 后不會(huì)自動(dòng)生成 repodata客戶端會(huì)直接報(bào)找不到元數(shù)據(jù)。如果你用的是老版本要么升級(jí)要么用createrepo在倉庫目錄里手動(dòng)生成后上傳。我建議直接升到較新的 3.x 版本能省掉大量手工維護(hù)元數(shù)據(jù)的工作。4.2 客戶端 repo 文件怎么寫客戶端只改一個(gè).repo文件指向 yum group[nexus-yum] nameNexus YUM Repository baseurlhttp://192.168.1.100:8081/repository/yum-group/ enabled1 gpgcheck0gpgcheck0只是內(nèi)網(wǎng)圖省事的寫法正式環(huán)境應(yīng)該把公鑰下發(fā)到/etc/pki/rpm-gpg/并把gpgcheck打開。改完文件執(zhí)行yum clean all再yum makecache緩存建起來之后再裝包就是內(nèi)網(wǎng)速度。注意改了源之后一定要先yum clean all否則老緩存還在會(huì)繼續(xù)走舊地址讓人誤以為配置沒生效。4.3 批量上傳 RPM 的三種姿勢(shì)第一種是界面手動(dòng)上傳適合零散幾個(gè)包缺點(diǎn)是包多了效率極低。第二種是curl PUT 上傳適合腳本化curl -v -u deploy:你的密碼 \ --upload-file ./nginx-1.24.0-1.el7.x86_64.rpm \ http://192.168.1.100:8081/repository/yum-hosted/Packages/n/nginx-1.24.0-1.el7.x86_64.rpm路徑里的Packages/n/只是目錄慣例方便按首字母歸類不影響功能Nexus 會(huì)自動(dòng)識(shí)別 rpm 內(nèi)容并更新元數(shù)據(jù)。第三種是從 proxy 緩存里提升到 hosted如果你已經(jīng)通過 proxy 拉過某個(gè)包可以直接在界面上把它移動(dòng)到 hosted 倉庫省一次下載。批量場(chǎng)景我一般寫個(gè)循環(huán)腳本把本地一個(gè)目錄里的 rpm 全部推上去幾百個(gè)包幾分鐘就能跑完。4.4 元數(shù)據(jù)刷新與校驗(yàn)上傳完成后去 hosted 倉庫的 Browse 里看是否出現(xiàn)repodata目錄里面應(yīng)該有repomd.xml和若干primary文件。有就說明元數(shù)據(jù)生成成功。客戶端這邊如果yum install報(bào)Cannot retrieve repository metadata按三個(gè)方向查網(wǎng)絡(luò)能不能通、baseurl 路徑對(duì)不對(duì)、group 的成員順序?qū)Σ粚?duì)。group 成員順序這件事容易被忽略。如果你的 hosted 里有一個(gè)包、proxy 里也有同名不同版本的包group 會(huì)按成員列表順序去找先命中誰就用誰。想讓內(nèi)部包優(yōu)先就把 hosted 放到成員列表最前面。5. APT 私庫給 Debian、Ubuntu 做內(nèi)網(wǎng)源APT 這套的邏輯和 YUM 類似但多了簽名密鑰這一環(huán)配置不當(dāng)會(huì)一直卡在apt update報(bào)簽名錯(cuò)誤上所以單獨(dú)拎出來講清楚。5.1 apt hosted 與 apt proxy 的建立創(chuàng)建時(shí)選apt (hosted)或apt (proxy)。hosted 需要填兩個(gè)關(guān)鍵項(xiàng)Distribution比如bionic、focal、jammy這類發(fā)行版代號(hào)和Signing Key。簽名密鑰是 APT 體系和 YUM 最大的區(qū)別客戶端默認(rèn)會(huì)校驗(yàn)包和索引的簽名沒有正確的公鑰就會(huì)直接拒絕更新。我的建議是單獨(dú)生成一對(duì)專用密鑰導(dǎo)出私鑰粘貼到 Nexus 的 Signing Key 配置里把公鑰保存好下發(fā)給客戶端。用現(xiàn)成的通用密鑰雖然省事但一旦密鑰輪換就是全量客戶端重配不如一開始就規(guī)劃清楚。5.2 sources.list 與公鑰落地客戶端配置寫在/etc/apt/sources.list或/etc/apt/sources.list.d/下的獨(dú)立文件里deb http://192.168.1.100:8081/repository/apt-group/ focal main然后是公鑰。把 Nexus 上導(dǎo)出的公鑰復(fù)制到客戶端后執(zhí)行導(dǎo)入sudo gpg --dearmor -o /usr/share/keyrings/nexus-apt.gpg nexus-public.key再回到 sources 文件里加上簽名引用形如[signed-by/usr/share/keyrings/nexus-apt.gpg]。這樣做的目的是把信任范圍限定到這一個(gè)倉庫不影響系統(tǒng)其他源的校驗(yàn)邏輯比直接把 key 加進(jìn)全局 trusted 列表干凈得多。改完執(zhí)行sudo apt update看到倉庫地址被正常讀取、沒有簽名報(bào)錯(cuò)就說明通了。5.3 上傳 deb 包與 dists 目錄結(jié)構(gòu)deb 包上傳同樣支持 curlcurl -v -u deploy:你的密碼 \ --upload-file ./mytool_1.0.0_amd64.deb \ http://192.168.1.100:8081/repository/apt-hosted/上傳后 Nexus 會(huì)在倉庫里維護(hù)dists/Distribution/和pool/結(jié)構(gòu)apt update讀取的就是dists下的Release和Packages索引。如果你上傳后客戶端報(bào)404八成是 Distribution 名字和 sources 里寫的對(duì)不上比如倉庫建的是jammy客戶端寫的卻是focal這種錯(cuò)看起來是網(wǎng)絡(luò)問題其實(shí)是配置不一致。5.4 apt update 報(bào)錯(cuò)的定位方法APT 的報(bào)錯(cuò)信息其實(shí)很直白按關(guān)鍵字對(duì)號(hào)入座就行??吹絅O_PUBKEY或者signature verification failed說明公鑰沒導(dǎo)入或者signed-by路徑寫錯(cuò)看到404 Not Found先核對(duì) baseurl、Distribution、組件名三者是否和倉庫配置一致看到Could not resolve或者超時(shí)那是網(wǎng)絡(luò)層的問題先curl一下倉庫地址看能不能通。我遇到過一次特別隱蔽的情況客戶端報(bào)簽名錯(cuò)誤但公鑰明明導(dǎo)入了。最后發(fā)現(xiàn)是密鑰過期時(shí)間設(shè)置得太短半年后就失效了。所以生成密鑰時(shí)有效期至少給幾年并且把輪換計(jì)劃寫進(jìn)運(yùn)維文檔別讓它在你忘記的時(shí)候突然爆掉。6. Node.js 私庫npm 代理加私有包前端工程對(duì)私庫的依賴程度可能是四類里最高的因?yàn)閚pm install一次要拉幾百個(gè)包公網(wǎng)速度直接決定構(gòu)建時(shí)長(zhǎng)。6.1 npm 三倉庫的建立與 group 順序和 Maven 一樣建三個(gè)npm-hosted放私有包npm-proxy代理官方源遠(yuǎn)端地址https://registry.npmjs.orgnpm-group聚合兩者。group 成員順序建議 hosted 在前這樣私有包名和公網(wǎng)包名沖突時(shí)優(yōu)先命中內(nèi)部版本避免裝錯(cuò)包。有個(gè)細(xì)節(jié)值得強(qiáng)調(diào)Nexus3 的 npm 代理在部分版本上對(duì)npm audit和某些元數(shù)據(jù)接口的支持不完整如果團(tuán)隊(duì)重度依賴npm audit可能需要額外配一個(gè)直連場(chǎng)景或者關(guān)掉相關(guān)檢查。這屬于版本特性差異遇到不要硬杠先確認(rèn)你用的 Nexus 版本對(duì) npm 的支持清單。6.2 .npmrc 的工程級(jí)配置客戶端配置分兩層。全局的~/.npmrc影響所有項(xiàng)目工程級(jí)的.npmrc只影響當(dāng)前項(xiàng)目。我一般把源地址寫進(jìn)工程級(jí)配置并提交到代碼庫讓團(tuán)隊(duì)成員克隆下來就能用registryhttp://192.168.1.100:8081/repository/npm-group/ strict-sslfalse如果私庫上了 HTTPS 并用了自簽證書strict-ssl的處理要謹(jǐn)慎穩(wěn)妥做法是把 CA 證書裝到系統(tǒng)信任鏈里而不是一律關(guān)校驗(yàn)。上傳私有包時(shí)還需要認(rèn)證可以用npm login或者直接在.npmrc里配_auth字段。6.3 發(fā)布私有包與 scope 綁定私有包建議統(tǒng)一用 scope比如mycompany/utils并在.npmrc里把 scope 和倉庫綁定mycompany:registryhttp://192.168.1.100:8081/repository/npm-hosted/這樣npm publish時(shí)帶 scope 的包會(huì)自動(dòng)發(fā)到 hosted不帶 scope 的走默認(rèn) registry。綁定 scope 的好處是避免了發(fā)布方向的歧義也方便在 group 里做路由控制。實(shí)操心得發(fā)布前一定在.npmrc里把認(rèn)證信息配好否則npm publish會(huì)返回 401 或 403。CI 環(huán)境里用環(huán)境變量注入憑據(jù)不要把 token 硬編碼進(jìn)倉庫。6.4 緩存、離線與 CI 場(chǎng)景npm 私庫最直接的收益體現(xiàn)在 CI 上。同一條流水線第二次構(gòu)建時(shí)所有依賴都命中內(nèi)網(wǎng)緩存npm ci的時(shí)間能從幾分鐘壓到幾十秒。如果再配合把node_modules或者 npm 緩存目錄做持久化效果更明顯。為了控制磁盤我給 npm proxy 配了緩存清理策略把長(zhǎng)期沒人訪問的包定期刪掉。但要注意清理策略刪的是緩存不是內(nèi)部包hosted 倉庫的包不會(huì)受影響。配置時(shí)看清楚作用范圍別把 hosted 也掃進(jìn)去那會(huì)把團(tuán)隊(duì)發(fā)布的私有包誤刪。7. 常見問題速查與排查手法這套環(huán)境跑起來之后日常遇到的問題集中在幾個(gè)固定方向我把它們整理成速查形式遇到直接對(duì)號(hào)入座。7.1 上傳類錯(cuò)誤怎么讀上傳失敗最常見的三個(gè)狀態(tài)碼401是認(rèn)證沒通過檢查用戶名密碼或者 token403是認(rèn)證過了但沒有寫權(quán)限檢查這個(gè)用戶有沒有對(duì)應(yīng)倉庫的nx-repository-view-*-*-add權(quán)限400多見于 Maven 重復(fù)發(fā)布 release 版本或者路徑不符合倉庫約定。有一個(gè)特別容易誤判的情況Maven 上傳時(shí)報(bào) 400 并提到redeploy很多人以為是權(quán)限問題去改用戶其實(shí)是版本策略擋的。看到這個(gè)關(guān)鍵字直接去改策略或者升版本號(hào)。7.2 客戶端拉取超時(shí)和 404 的定位順序遇到客戶端拉不到包我固定按這個(gè)順序查第一步確認(rèn)倉庫地址能通用 curl 訪問 group 的根路徑返回 200 說明服務(wù)正常第二步確認(rèn)包在不在直接在界面 Browse 里搜包名看它在哪個(gè)成員倉庫里第三步確認(rèn) group 成員配置有沒有漏加或者順序錯(cuò)了第四步查緩存過期404 被緩存住的情況在老版本里很常見清理一下對(duì)應(yīng)倉庫的緩存就好。這個(gè)順序的好處是從大到小逐層收斂不用一上來就翻日志。真到第四步還解決不了再去翻nexus.log里面會(huì)有到遠(yuǎn)端請(qǐng)求的詳細(xì)記錄。7.3 磁盤告警與清理策略磁盤是私庫最現(xiàn)實(shí)的瓶頸。我的做法是每個(gè)倉庫單獨(dú)配清理策略而不是全局一把抓。Maven snapshot 保留最近 30 天npm proxy 只保留最近 90 天被訪問過的包系統(tǒng)包緩存保留版本數(shù)上限。同時(shí)給數(shù)據(jù)目錄做磁盤水位監(jiān)控超過 80% 就告警。需要提醒的是清理策略是定期任務(wù)不是實(shí)時(shí)執(zhí)行配置完要手動(dòng)跑一次或者等調(diào)度周期到才會(huì)生效。別配完就以為空間立刻回來了我見過有人等了半天以為策略沒生效其實(shí)是任務(wù)還沒跑。7.4 備份、遷移和擴(kuò)容備份的黃金法則是備份數(shù)據(jù)目錄而不是備份容器。Nexus3 的所有配置、倉庫內(nèi)容、用戶信息都落在數(shù)據(jù)目錄下的 blob store 和數(shù)據(jù)庫里把整個(gè)目錄 rsync 出來就是完整備份。Docker 環(huán)境把/nexus-data備份走裸機(jī)把sonatype-work/nexus3備份走。遷移時(shí)新機(jī)器裝好同版本 Nexus把數(shù)據(jù)目錄拷過去權(quán)限改成對(duì)應(yīng)用戶啟動(dòng)即可。這里有個(gè)大坑目標(biāo)機(jī)器的 Nexus 版本不能低于源機(jī)器否則數(shù)據(jù)結(jié)構(gòu)不兼容會(huì)啟動(dòng)失敗。升級(jí)路徑永遠(yuǎn)是先升程序再遷數(shù)據(jù)別反過來。擴(kuò)容主要針對(duì) blob store。Nexus3 支持把 blob store 放到獨(dú)立磁盤甚至共享存儲(chǔ)上數(shù)據(jù)量大了之后可以直接把 blob store 目錄換到更大的盤改配置重啟即可不需要重建倉庫。8. 我在實(shí)際搭建中踩過的坑和積累的小技巧前面講了標(biāo)準(zhǔn)流程這一節(jié)說點(diǎn)文檔里不太會(huì)寫、但實(shí)際會(huì)絆人的細(xì)節(jié)。8.1 權(quán)限別只給能上傳一開始我給 CI 用的deploy用戶只加了上傳權(quán)限結(jié)果發(fā)布 npm 包時(shí)一直 403排查半天才發(fā)現(xiàn) npm 發(fā)布除了寫權(quán)限還需要對(duì)倉庫的讀取權(quán)限因?yàn)樗l(fā)布前要先檢查包是否存在。后來給這個(gè)用戶補(bǔ)上了read和browse問題就沒了。所以配權(quán)限時(shí)別只盯著寫讀取和瀏覽通常也得給。8.2 反向代理和上下文路徑的配合把 Nexus 放到反向代理后面時(shí)最容易出問題的是上下文路徑。如果對(duì)外暴露的路徑前綴不是根路徑需要在 Nexus 里配置Base URL或者在代理層做路徑重寫否則界面里的資源鏈接會(huì)指向錯(cuò)誤的地址表現(xiàn)為頁面加載一半就失效。最省事的做法是讓 Nexus 的 Base URL 和代理對(duì)外地址完全一致不要做多余的路徑變換。8.3 關(guān)于密碼和密鑰的幾條經(jīng)驗(yàn)初始密碼要第一時(shí)間改改完把文件刪掉CI 憑據(jù)走環(huán)境變量注入不要提交到代碼庫APT 的簽名密鑰有效期給足并且記錄輪換計(jì)劃Maven 的部署密碼和登錄密碼不要用同一個(gè)。這些都是小事但每一條出問題都會(huì)變成大事。8.4 一次版本不匹配引發(fā)的連鎖反應(yīng)有一次我在測(cè)試機(jī)上升級(jí)了 Nexus把數(shù)據(jù)目錄直接拷到舊版本的機(jī)器上想回滾結(jié)果啟動(dòng)直接失敗日志里報(bào)數(shù)據(jù)結(jié)構(gòu)版本不兼容。后來才知道 Nexus 的數(shù)據(jù)庫有 schema 版本號(hào)只能向前不能向后。從那以后我給自己定了一條規(guī)矩升級(jí)前一定做完整的數(shù)據(jù)目錄快照回滾用快照而不是降級(jí)程序。這條比什么優(yōu)化技巧都重要。另一個(gè)小技巧是關(guān)于首次緩存的預(yù)熱。新搭好的私庫第一次給團(tuán)隊(duì)用大家同時(shí)拉依賴會(huì)很慢因?yàn)槎荚诘却砣ミh(yuǎn)端拉。我一般挑幾個(gè)大項(xiàng)目的構(gòu)建先跑一遍把熱門依賴提前緩存進(jìn)私庫等團(tuán)隊(duì)切過來的時(shí)候命中率已經(jīng)很高了體驗(yàn)會(huì)好很多。這個(gè)操作不復(fù)雜但對(duì)推廣私庫很有幫助畢竟大家最在意的就是切過去之后是不是真的更快了。最后再補(bǔ)一個(gè)小細(xì)節(jié)關(guān)于客戶端配置的下發(fā)。人一多最麻煩的不是搭私庫而是讓所有人把客戶端配置改對(duì)。我的做法是寫一段幾行的初始化腳本Maven 用settings.xml模板覆蓋npm 用工程級(jí).npmrc提交到代碼庫yum 和 apt 的源文件用配置管理工具統(tǒng)一下發(fā)。這樣新人進(jìn)來跑一個(gè)腳本就配好了也不會(huì)有人漏改某一條導(dǎo)致構(gòu)建行為不一致。搭私庫這件事真正的成本從來不在服務(wù)端而在讓整個(gè)團(tuán)隊(duì)用得整齊。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天综合网91入口| 天天日天天色| 四虎免费在线观看| 国产免费一区| 第四色亚洲色图| 成人性爱美曰韩| 少妇高潮九九九九| 十八禁黄色| 熟女高潮精品一区二区| 足交视频老司机| 欧美一二三区四五区| 色婷婷视频| 思思热影视| 蜜臀久久99精品久久久电影| 五月天我淫我色av| 78久久| 久久久久久久久久久久欧美日| 日韩AV片| 日韩AV电影网站| 综合一区中亚洲国产成人综合精品 | 91AV入口| 欧美激情区| 日本黄色天堂| 国产中文字幕在线观看| 997色在线| 中文字幕乱偷人妻久久艾草网| 欧美亚洲丝袜美女电影| 亚洲日韩一区电影| 防屏蔽在线视频| 精品国产久热在线观看| 少妇滛荡视频| 啪啪91| 欧美在线干| 综合网色| 丝袜美腿欧美| 青青草视频爽一爽| 色妇91| 亚洲日韩少妇一道本视频| 五月天综合网| 色网亚洲人| 久久久久久999| 日日骚一区二区三区| 78精品| 91w欧美| 欧亚日韩中文在线| 国产精品999aaa| 无码人妻精品一区二区三区99不卡| 中文字幕精品码亚洲| 欧美牲| 成人免费性爱视视| aaaa黄片| 久9久| 99999这里都精品| 久久岛国| 亚洲精品国产AV天美传媒| 91天堂视频| 绑缚麻绳人妻寝取完整版| 伊人少妇久久久| 91丝袜人妻| 秋霞色色影院| 91成人久久| 91精品无码人妻系列| 欧美性生活综合| 久久国产三区| 九九九热精品| 人妻色偷色噜| 五月丁香社区婷婷日韩欧美精品影院| 九九AV| 大香蕉97久久| 欧美亚洲厕所精品偷拍91| 日日摸日日弄日日拍| 在线天堂资源亚洲| 精品少妇一区二区三区在线视频| 久久极品一区二区| 蜜桃臀一区二区三区久久| 97AV在线观看| 免费看黄视频亚洲网站| 曰韩精品九九无码| 9久9久| 日韩黄片视频试看| 日韩美一区| 91爱看| 亚洲天堂人妻一区二区| 可乐操在线| 精品人妻视频入口| 亚洲色婷婷| 91性生活久久久| 青青操在线视频| 免费看片黄| 夜夜草网站| 97 国产一区| 超碰在线一区| 激情五月婷婷综合| 男人的天堂VA| 成人在线视频网| 嗯嗯啊好大| 日日夜夜精品视频| 97香焦色区| 一区二区三区四区久久视1| 啊啊啊啊操死我| 国产专区第一页| 综合网欧| 久久黄色视频一区二区三区| 久久最新免费视频23| 欧美图片校园春色| 亚洲强奸乱伦影视网| 又大又黄国产| 亚洲AV无码乱码| 日韩丰满熟妇| 熟妇激情| 91干熟女| 加勒比无码毛片| 成年人性爱日韩| 欧美成熟性爱精品| 久久综合精品一区二区三区| 精品无码久久久久久久杏吧| 国产自产91区13区| 家庭乱伦国产精品| 制服中出中文人人精品| 亚洲图片色图欧美另类| 欧洲精品人妻| 午夜精品久久久久久久男人的天堂 | 强奸乱伦Av网| 国产一区二区三区,在线观看观看| 91综合网| 97色欧州| 国产高清在线观看欧美| 麻豆人妻偷人精品无码视频| 激情综合网五月婷婷| 久久久久96| 秋霞蝌科网日本一区| 啊啊啊啊在线观看网址| 亚洲欧洲综合成人av一区| 国产二区三区粉嫩在线| 激情色色| 男人的午夜天堂| 狠狠五月天| 日本色色色网站免费看不卡| 中文字幕制服欧美久久一区| 欧美日韩性爱电影在线| 超碰97导航| 亚州综合图片| 亚洲成a人片在线观看中文!!!| 日本九九久久99| 大香网站| 熟妇人妻精品一区二区| 极品粉嫩少妇视频| 欧美99热| 人人搞人人插人人操| 久久久久久久 九九九九九九九| 91精品国产91久久青草| 中文日韩欧美熟| 丁香五月AV| 国产在线能看的你懂的| 亚洲天堂少妇| 青青草视频久久久久| 翔田千里一区二区三区奶水| 久久只有精品| 精品无码产区一区二| 欧美十八禁在线看| 亚洲欧美日韩中文播放| 久久久久9| 99啪啪| 极品销魂美女一区二区| 变态另类专区| 97免费视频网| 五月色综合| 91P0RNY大屁股人妻| 91无摭挡| 中文字幕88av在线| caorenqi shipin| 亚洲国产欧美一区二区潘金莲| 试看60秒| www.高清无码诱惑一区.com | 九九色色| 五月开心网| 91c色| 亚洲牲交| 免费视频观看60秒| 色拍偷亚洲| 婷婷成人久久久精品| 亚洲欧洲日韩国产自在线| 东北毛片| 肉动漫无遮挡h在线观看| 久久久久久99999国产精品| 欧美操人视频| 97无码视频在线播放| 亚洲熟女综合网| 亚洲国产成人7777| 亚洲码在线中文在线观看| 天天透伊人| 91色伦| 久久一二三四五六七八九区| 啊啊啊啊啊啊啊啊啊啊在线观看| 午夜久久一区二区无码中出| www五月| 色综合天天| 免费a v| 欧美日韩狠狠爱| 大香蕉92| 丝袜美腿射精91| 欧美天天拍| 婷婷五月天小说| 精品国产乱码久久久久久口爆网站| 亚洲男人电影天堂| 免费操逼91| 手机在线人成免费视频| xxx0国产在线播放| 亚洲成人福利电影免费| 欧美性爱www免费版| 人人操,人人插| 91一区二区三区蜜桃| 五月丁香黄色网| 97超碰超碰| 男人久久天堂| 熟妇综合一区二区三区| 欧美性爱无码一区二区三区| 手机午夜电影神马久久| 怡红院一区二区熟女人妻| 黄色电影观看久久9| www.91理论| 欧美另类精品xxxx| 97国产高清视频在线观看| 波多野42部无码喷潮在线观看 | 欧美色亚洲| 欧美日本成人一区二区| 日韩熟女无码| 可能人人看人人摸| 国产精品三级视频网站| 五月综合久久| 黄色小说亚洲| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 日韩一区二区精彩视频| 无遮挡一级毛片视频免费的| 搡老人老9丨女老熟人| 在线观看日韩av不卡| 久久欧美性爱视频| 人人色97| 97国产精品视频| 超碰成人人人爽人人爽| 91性高朝久久久久久久久| 人人操人人操人人人操| 99日精品欧美国产| 久艹伊人精品综合在线| 大干人妻| 一起草三级AV电影在线观看| 入口操逼网站| 国产日本熟女顶级一区二区三区视频 | 亚洲成av人片色午夜乱码| 99在线观看| 伊人色综合超碰| 国产视频小说| 很很操在线| 在线人人人人人人精品超| 黄污污污污| 天天看片麻豆| 精品日韩人妻精品一二三区| 久久性爱视频| 日韩中文字幕2020| 69一区二区三区 | 久久黄黄| 欧美熟女逼久久久久久| 无码人妻精品一区二区中文| 蜜臀少妇一区二区| 激情啪啪视频| 国产偷拍自拍在线视频| 日韩视频小说在线观看| 啊啊啊操死我| av资源在线播放天堂| 99re不伦| 狠狠久久手机视频精品| 亚洲成人av色网| 久久久久无码一妻区| 视频不卡中文字幕| 日韩啪啪网| 最新9久久久9免费视频| 再深点灬舒服灬太大了添视频| 男人夜色天堂ss| 天堂涩涩| 国产免费操逼| 精品人妻一区二区三区夜夜| 国产午夜精品理论片a大结局| 中日高清无码操逼视频| 97欧美色| 无码WWW免费视频网站| 操九九九九九九| 极品另类| 成年女人一区| 久久免费少妇| 韩国久久97| 黄色成年| 日本三级久| 校园春色AV天堂| 综合色啪| 久久蜜桃一区二区| 激情综合五月丁香| 色香欲综合| 激情视频网址| 欧美性爱一区二区三区| 东京日日夜夜| 久艹日日日| 亚洲欧美大香蕉| 加勒比aⅴ| 99热这里| 久久av无码| 久久內射| 午夜黄色免费在线观看| 人人妻人人爽一区二区三区| 97超碰美国| 国产精品久久妻无码网站| 97国伦国色| 亚洲欧美色图小说| julia中文字幕在线观看| 丰满岳乱妇一区二区三区| 欧亚第一综合网| 隔壁邻居波多野结衣中文字幕| 91亚州欧美| 丰满岳乱妇一区二区三区| 亚洲91网站| 成人午夜视频免费播放| 国产女s强制榨精视频| 啊啊啊啊啊在线视频| 美国一区二区三区视频| 超碰在线91| 国产精品久久久视频| 国内精品久久人妻性色av| 素颜老阿姨乱情色| 五月丁香综合啪啪| 成人a大片在线观看| 精品无码产区一区二| 激情五月天综合网| 国产乱色国产精品免费视| 国产成人精品一区| 97网址www| 日韩中文字幕精品一区在线| 欧美图片校园春色| 91久久18禁| 色综合九九| 成人自拍三级在线观看| 午夜操操操| 最新亚洲风情电影| 97精品综合久久| 亚欧无码线免费观看视频| 亚拍在线| 国产视频一区二区三区久久亚洲天堂| 欧美三级中文字幕hd| 无码人妻一区二区三区免费九色| 九区国产| 啪啪91| 色综合久| 日本一天色道久久久精品视频| 92午夜免费福利视频| 屁股久久久久久久| 欧美色老汉| 熟妇艹鸡八| 看看小穴| 亚洲人妻一区二区三区| 激情接吻视频久久久久久| 无码动漫av中文字幕| 欧美高清91| 夜夜骑操视频| www.高清无码诱惑一区.com| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 日本肉体xxxx裸交| 777奇米影视777四色| 日本黄色精品专区网站| 中文视频在线观看| 91色婷婷综合久久中文字幕二区| 四虎免费视频| 国产性爱欧美性爱在线| AV高清一区| 天综合中文| 91人妻PORNY九色大屁股| 亚洲蜜乳av| 老司机天天操| 日本无码1| 亚洲日韩美国人妻| 欧美一级久久久久久久大片动画| www.亚洲黄色| 都市久久精品激情亚洲| 亚洲精品国产无码高清| 国产亚洲精品美女久久久m| 成全动漫视频观看免费下载| 精品欧美老熟女一二区| 天天看精品动漫视频一区| 国产精品久久久 | 9热9热综合网| 亚洲黄色网址| 四虎免费视频| 91精品导航| 欧美丝袜中文字幕07在线| 四虎884| 中出20p| 色97欧美| 狠狠穞A片一區二區三區| 国产三级日产三级韩国三级 | 97欧美色综合| 国产精品丝袜在线| 欧美色涩| 精品九九国产无码| 伊人影院综合是一个与深夜成人在线| 日本人人操人人操| 啪啪91| 久操B网| 四虎免费看黄| 天天影视91看看| 欧美性色欧美| 日本孕妇一区二区视频操逼免费看 | 五月丁香综合| 一区中文字幕二区日韩| 嗯嗯嗯啊啊啊干死我吧| 91中文字幕在线观看| 狠狠躁伊人中文字幕| 2017天天操| 中文字幕黄片在线| 五月天婷婷色| 欧美日韩国产电影| 亚洲素人综合| 国产精品成久久久久午夜午夜| 免费观看国产不卡av| 操逼逼无码| 99久久无色码| 亚洲日韩东京热一区| 精品人妻久久久| 香蕉黄色一级视频| 久久久com| 97超久碰| 夜夜草网站| 日本丝袜美腿人妻九九| 亚洲色性| 又大又长又粗又爽又黄| www.婷婷五月天| 伦在线97| 伦激情人妻另类人妻| 日本中文字幕在线电影| 91美女在线视频| 极品出轨视频网站| 中日韩久久久| 亚洲色9| 久操国产在线| 中文字幕一区日韩精| 久久男人网| 精品国产乱码久久久久久蜜臀| 1级黄色夫妻对换性交免费看| 青草av在线| 日日日骚女人精品| 秋霞成人一级在线观看| 亚洲精品丝袜| 日少妇视频| 综合一区中亚洲国产成人综合精品| 九九热超碰97亚洲最新香蕉| 欧美性爱一区二区 | 97神马久久| 欧美成人AⅤ大片在线观看| 男女打扑克高清网站| 精品人妻一区二区三区蜜桃视频| 免费一级特黄特色大片在线观看看| 亚洲成人av色网| 999久久久久久久久| 亚洲国产一区二区入口| 久久一二三四不卡| 日韩人妻有码免费视频| 色色99| 十八禁啪啪视频| 素人播放一区| 97亚洲在线| 日韩情色视频| 天天色图| 久久一留热品黄| 欧美欧美啪啪视频| 色噜噜人妻丝袜AV资源| 欧美gv在线观看| 久久色激情一区二区三区| 亚洲欧美另类图片| 欧美久久九九| 17c嫩草51久久91嫩草| 95精品在线| 91网站18| 亚熟在线| 欧美日韩激情无码专区| 色香91| 久久久免费一级黄片| 超碰在线综合97| 丁香五月婷婷基地| 女优大全 - 91n| 97午夜剧场日韩| av一区二区三区不卡| 日韩少妇丰满亚洲| 欧美强奸乱能| 亚洲中文sv| 亚洲高潮少妇| 18禁在线视频| 午夜操操操| 九九亚洲| 亚洲伊人a线观看视频| 校园春色宗合网| 日本午夜福利影院| 啊啊啊好想要| 日韩精品国模| 91 亚洲 欧洲| 久久亚洲欧美中文字幕国语| 亚洲怡春院| 人人摸人人干| 变态乱伦伪娘灌肠一区二区| 亚洲欧美天| 久久久草成人网站久久久草成人久久久草久久久 | 日本精品一区二区三| 国产激情久久久| 精品人妻中文字幕高清| 9 1超碰九色| 中文高清一区二区的| 老熟女搡BBBB搡BBBB视频| 99精品丰满人妻无码| 精品久久久久,69国产成人精| 久久精品国产亚洲妲己影视| 国产超碰97| 高清不卡一二三区视频......| 99热精品国产| 亚洲激情四射| AAAAAAAAA黄片| 97精品| 色97国产69香蕉| 大香蕉中文aV在线| oumeisetu综合| 国产精品无套内谢| 一区二区中文| 成人性交午夜免费片| 美女黑人91神马| 九色 人妻 大香蕉| www色色com| 国内亚洲精彩视频在线| 国内偷拍精品一区二区| 九九九成人| 好爽免费视频,| 国产白嫩精品久久| 亚洲 图片 综合91| 日本污ww视频网站| 欧美日韩操逼嗦吊| 亚州一区二区成人片免费| 97视频在线看| 亚洲资源一区| 久肏视频字幕| 日1区2区3区2020| 欧美熟女丝袜| 亚洲凸凹超碰成人| 欧美青青视频| 久久精9| 操人妻逼91| 国产性感骚丝袜在线| 天天插天天射| 欧美性爱五月天| 久久亚洲婷婷| 五月天婷婷色色| 亚洲第一在线视频| 免费综合亚洲中文| 欧美一级黄片免费播放| 黄色av片三级三级三级免费看| 欧美91视频| www亚洲免费| αⅴ天堂| 可以免费观看的日韩av毛片| 操逼操逼视频操逼| 影音先锋中文字幕日本好一区二区| AV一起草在线| 脫衣舞一区二区三区| 另类小说综合网| 色欲无码人妻日韩欧美精品| 免费精品人妻一区二区三| 最新三级网址| 国内精品伊人久久久久影院会| 亚洲精品乱码久久久久久蜜桃麻豆| 郑州宾馆老熟女露脸啪啪| 人人摸人人摸人人干| 国产92麻豆天美精品色欲5| 黄色高清无码无码破解免费暗网| 在线可观看的黄色网址| 色优久久| 熟妇人妻一区二区| 豆1无夜无码| 国产精品午夜福利| 最近二区三区视频大全| 玖玖爱在线视频免费观看| 欧美精品久久久久久久丰满| 91c色| 狠狠操天天干| 99热精品国产| 欧美美逼| 国产兽交视频在线播放| 精品中文字幕一区二区l - 百度| 国产动漫操逼视频| 色女综合| 无卡一区=区| 91熟女在线| 成人性爱av| 五月色网| 亚洲欧洲无码97久久精品| 国产后入清纯| 日韩福利电影网| 国产亚洲禁久一区二区| 夜夜操av亚洲一区二区| 人人爽夜夜玩视频| 成人精品无码| 日韩AC| 99re8超碰| 91痴汉| a片偷拍视频| av中文在线| 久久国产精品91| 久操大香蕉手机视频在线看| 99999精品成人| 熟女久久久| 国产午夜在线观看| 国产CHASE男男GAYGA 毛多色婷婷| 狠狠操天天干| 999九九九九国产动| 中文字幕在线免费观看2| 国产av美女被艹的乱叫| 婷婷情色五月天| 欧美偷拍| 无码伊人久久大杳蕉中文无码| 熟妇熟女一区二三区| 97欧美日韩精品| 国产av强奸美女| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 亚洲国产精品成人久久蜜臀| 欧美性爱一级操| 亚洲情色在线| 日韩精品资源专区二区| 无码9区| 中文字幕av片| 免费强奸av| 欧美A√综合网 | 三级日本一区二区三区| 一区二区三区四区色图| 校园春色 亚洲| 久久精品国产亚洲AV片多多| 午夜福利在线视频1000| 人人么人人操| 97国产精品国| 婷婷色综合欧美日韩| 97久久精品亚洲| 啊啊啊久久| 狼人久草| 天久久久噜噜噜久久国产精品爽爽 | 高清无码网址| 蜜臀久久久99久久久久| 亚洲色五月| 97超碰精品图片| 综合色色网| 91n处女在线观看| 亚洲高清无码免费观看视频| 欧美啪啪天堂| 九月色婷婷| 大香蕉中文在线| 欧美乱色| 国产JDAV无码视频在线观看| 欧美A√综合网| 精品少妇人妻av久久免费| 亚洲青色欧美| 人人做人人妻人人夜视频| 丁香7月婷婷| 日韩AV熟女乱伦| 大香蕉99999| 久久久久9久久久久| 婷婷久久五月综合激情| 久久999久| 欧美精品xxxwww| 国产自啪精品视频网站黑丝| 国产亚洲99久久精品| 91亚洲情色| n1038 一二三区| 日韩欧美aⅴ综合网站发布| 五月天亚洲网| 91久久久久免| 免费少妇一区二区| 天天干夜夜操一区二区| 久久精品欧美一区蜜桃| 成人免费看吃奶视频网站| 91网站在线播放| 亚洲色图大香| 日韩亚洲精品一区二区| 婷婷人妻激情| 日本精品国产视频| 免费a在线播放v| 亚洲无码视频免费在线观看网址!| 四虎AV影视国产精品亚洲精品| caoni国产亚洲av| 久热最新在线杭州| 黑人精品久久97| 99在线免费观看| 岛国片在线播放| AV中文字幕三四五| 欧美老妇女内射网址| av资源在线播放天堂| 国产女同在线观看视频| 精人妻无码一区二区三区伊人直播| 97色色视频| 国产特级毛片AAAAAA高潮流水 | 日本性爱不卡视频| 亚洲天堂男人| 91插B网站| 欧美情色男人的天堂| 成人看片网站| 亚洲啪啪视频一区二区| 日本熟妇浓毛hdsex| 91欧洲入口| 超碰综合色| 久久久人体| 思思热免费视频观看| 亚洲精品免费中文字幕| 久久久久久久91| 欧美在线|亚洲| 亚洲综合有玛| 91超碰人人| 操操啪| 国模无码一区二区三区在线| 中国AAAAAA黄色片| 少妇蹲下露出大唇5| 很狠操| 中文字幕精品久久久久人妻红杏ⅰ| 碰碰在线视频| 超碰国产在线| 日韩成人大片在线观看| caoni国产亚洲av| 收看日本人日bb| a片自拍直播视频| 久久加勒比| 97超碰精品图片| 四虎免费在线播放| 国产高清在线自在拍69| 亚州综合色图| 伊人玖玖网| 91美女视频在线| 69精品人人人人| 亚洲中文字幕有码视频一区二区三区| 人妻啊啊人妻啊| 亚洲.欧美.丝袜.中文.综合| 九九在线精品| 亚洲精品男人的天堂| 99操99| 五月丁香色婷婷| 午夜丁香| 亚洲天堂区| 久久久久骚| 中文字幕91综合| 99热这里只有精| 蜜桃在线观看一区二区三区| 亚洲棕合电彰| 91处女视频在线观看| 妇女视频网站| 超碰1997| 美女天天干| 中文三一区| 99999精品| 中文字幕人妻资源在线| heyZO天然素人无码AⅤ专区| 日韩图区 偷拍| 色情乱伦AV| 日韩成人综合网| 吻戏激情性巴克| 日韩一级二级在线| 蜜臀AV成人精品蜜臀| 激情小说亚洲视频| 国产嫩草精品A88AV| 久久久久久久| 国产乱伦性爱区| 亚洲一区二区三区四区视频| 日本福利二区视频| 久久精品免费| 日韩久草| 人妻欧美| 久久青青草原免费视频| 91丨熟女丨丰满熟女| 婷婷五月天激情小说| 一区=区三区视频| 天天草AV| 久久久久久久97| 青娱乐欧美激情一区二区| 欧美黑人精品一区二区| 国产剧情一区在线观看| 日韩 欧美 校园一区| 日韩精彩视频| 亚洲国产综合视频| 操逼视频免费日韩无码| 五月天丁香欧洲日韩| 爱爱久久| 男人天堂2030| 不卡一区二区日本视频| 天天综合色| 久久AV色| 免费操逼91| 黄色片大香蕉| 操B久久| 亚洲风情在线观看| 中文字幕亚洲热播人妻| 久久久久久久一级黄色打同平台| 日韩天天本| 大香蕉一级黄色片久久| 国产小视频91| 久草婷婷| 欧美超碰97| 日本三级韩三级99久久| 九九九九免费高| 精品一级毛片在线观看| 国产AV高清AV无码| 性生活无遮挡纯毛片在线看| 精品人妻av区天天看片| 3P乱轮视频| 熟妇精品juliaannAV| 少妇高潮九九九九| 国产无套粉嫩白浆在| 啊啊啊不要啊啊受不了了视频在线 | 欧美熟妇精品黑人巨大91| 中日韩久久久| 白丝jkav| 日本精品中文字幕视频| 欧美性天天影视| 久9爱精品| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | A片三级无码| 狠狠做深爱婷婷久久二区| 亚洲婷婷丁香在线| 久jiu久神马影院| 天天92av| 又大又白奶子| 欧美97色| 大奶啊啊好爽| 91少妇人妻| 开心婷婷五月| 91爱啪| 国产精品一二三区福利| 97国产|免费| 色婷婷久久| 超碰天天去日穴| 欧美刺激色黄片免费看| 欧美天天在线| 日本精品第一视频在'| 欧美第二页午夜| 日人妻视频91| 欧洲自拍第一页| 五月婷婷爱六月丁香色| www.人人摸在线视频| 强奸xx国产| 色香欲综合| 久久人人妻| 欧美极品美女aaaaaa级黄片| 欧美色图片91| 中文字幕精品一区欧美| 老女人碰碰在线碰碰视频| 久久黄色性爱视频| 97资源站久久| 色五月网址| 中文字幕三四区| 97资源欧美| 日本高清_区二区三区| 国产亚热在线久久| 99综合| 97超碰人人操人人操| 啊啊啊啊啊啊好湿好爽视频| 亚洲色图欧美色图日韩色图| 视频二区熟女人妻| 九九性爱网| 天天综合网网欲色| 色偷偷色偷偷欧美日韩| 成人网站 免费观看| 精品人妻一区二区三区视频在线| 欧美后进式| 波多野结衣AV无码一区| 99热8| 色99视频| 成人性爱av| 在线洲亚线| 亚洲伊人久久精品狠狠在线| 久久精品中文字幕观看| 无码二级三级| 蜜桃久久久久久久| 久久AV无码网址| 91欧美大片| 东北操逼| 亚洲。日韩。欧美| 偷拍自拍在线视频观看| 亚洲色图欧美| 亚洲熟女偷拍在线观看| 曰韩精品九九无码| 国产探花精品在线| 日躁天天爽爽| 亚洲AV人人澡人人爱| 精品国产乱码久久久久久影片| 韩国一级婬片A片无码天美 | 亚洲精品久| 欧美黑人精品一区二区| 精品国产Av无码久久久伦古装| 亚洲天堂日本| 91狠婷| 在线观看黄色电话| 夜夜草天天| 久久久青青草| 久湿久久| 91在线色| 亚洲 欧美 中文 日韩超碰 | 人妻精品一区二区三区| 青青欧洲黑| 久久本道| 久久九九99| 一区二区三区免费岛国片| 亚洲啪啪综合?v一区综合精品区| 国产精品电| 亚洲欧美日产国产91毛片| 天天添天天干电影| 亚洲欧洲综合视频在线| 午夜偷拍久久熟女| 久久免费99精品久久久久久| 久久色精品视频在线| 欧美淫乱视频| 欧美日韩另类字幕中文| 伊人国产av| 美女啊啊啊啊啊啊啊| 综合网色| 熟女突然公开看18禁影片| 久久精品日韩| 老熟女乱伦一区| 亚洲av青草久久一区二区| 日韩久射综合| 国产伊人精品在线| 91精品在线播放| 亚洲在钱| 日日碰视频网| 亚洲综合色在线| 人妻激情在线视频| 噜噜噜亚洲精品| 无码久| 亚洲色入欧美| 97碰碰日本乱偷人妻中文的| 超碰精品| 成人久久精品| 蜜臀久久99精品| 中文字幕十五区| 天天看高清麻豆| 亚爽爽爽爽爽爽爽爽| 1区2区3区中文字幕日韩| 69AV女优男人的天堂| 麻豆国产原创AV色哟哟 | 69av一区二区三区| 国产精品久久久久久久无码AV| 国产91精品在线免费| 97操| 国产超碰AV在线精品| 亚洲 小说 欧美 激情 另类| 欧美性爱18观看| 亚洲欧美在线观看无码| 国产 日韩 欧美高清| 日逼国产| 99re国产中文字幕| 天天综合色| 亚洲。日韩。欧美| 69精品人人人人| 蜜屁Av| 97超碰影音| 天天综合官网| 永久免费av无码网站国产app| 欧美A片中文字幕| 蜜桃视频成a人v在线| 欧美日韩中文亚洲v在线综合| 日韩在线观看中文字幕视频| 大香蕉操久久| 东北女人| 蜜臀一二三区| 91亚州| 亚洲成人无码影院| 婷婷五月天成人| 欧美在线伊人色| 91男人天堂网| 中出欧美| 亚洲国产奇米影视久久| 欧美一级A片在线看视频性色| 蜜桃臀av在线观看| 亚洲情色一区三区| 俺去啦自拍| 久久大黄片| 青椒国产97在线熟女| 激情五月天丁香| 91亚洲欧美色图| 91精品久久久久久| 无码人妻一区二区三区色欲aⅴ| 国产大学生口爆吞精合集| 99热精品在线| 精品中文日韩字幕视频| 蜜臀久久久99久久久久| 一区二区精品日韩欧美在线观看| aⅴ日韩成人电影av在线免费看av大全| 99色视频| 超碰久久网| 97超碰色| 日韩性爱网址| 国产亚洲欧洲在线观看| 蜜臀久久99精品久久久久久成人小说 | 91白虎| 国产精品一区二区校花| 夜夜肏2021| 俺也射| 色欲三区| 日韩人妻少妇中文字幕| 中文熟女五十乱码在线| 偷拍偷窥与盗摄视频专区| 秋霞视频一区二区| 美女AV一区二区| 欧美资源| 欧美性生活综合| 亚洲综合情色| 亚洲AV秘无码一区..| 亚洲国产精品久久久久久久久久| 中文字幕一区二区三四五区日日骚| 天美传媒AV在线播放| 国模少妇一区二区三区| 久插综合| 久久久97| 丁香五月综合| 亚洲丝袜二区在线| 天堂中文资源在线bt| 美女大乳久久久久久久女人18| 福利视频网站| 色激情五月天| 亚洲丝袜二区在线| 在免费jIzzjIzz在线视频| 黄色不卡视频| 91被操| 精品久久99| 翔田千里AV无码秘 三区| 思思热在线| 日本大香蕉综合网红本杳社区| 97任你吞精| 91艹| 蜜乳性色无码专日粉嫩骚逼AV| 日韩9999| 国产精品人妻熟女aⅴ| 欧美激情超碰777| 国产精品人妻一区二区| 免费的av网| 综合伊人网12色| AV天堂电影网| 精品久久无码午夜福利| 草伊人高潮喷水超碰| 亚洲一卡二卡在线免费| 久久綜合很很很| 亚洲精品国产无码高清| 蜜臀久久久| 国产亚洲女v在线观看| 久久久男人的天堂| 久久精品国产亚洲AV片多多 | 丁香婷婷啪啪| 五月情色天| 午夜情侣自拍网站| 日韩免费三级黄片电影| 欧美少妇性乱| 日韩欧美亚洲一区二区三区影院| 日韩青久久| 日本 欧美 亚中文字幕| 黄片www视频免费| 美国久久一二三四| 乱伦av.com| 久操国产在线| 久久av色| 国产激情av女片自拍| 97色欧洲| 97亚洲国产影视| AV天堂国产| 很狠操| 嗯啊不要在线| 国产丝袜欧美在线视频| 免费成人在线熟妇网| 久操不卡视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日韩99神马视频播放片在线播放| 黄色免费网| 精彩久久中文| 加勒比无码一区二区三区| 一级性爱视频免费观看 | 91n.欧美| 情色日播放AV| 强奸乱伦大香蕉| 国产精品久久泡妞网站| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 日本阿v天堂在线观看| 九九亚洲精品| 精品婷婷| 欧美Aⅴ| 怡春院久久| 日日夜夜噜| 五月丁香色婷婷| 日韩黄片视频试看| 易易A毛视频| 97色涩| 少妇二级| 国产亚洲精品第一最新| 国产精品精品系列在线观看| 日日干夜夜欢| 91 国产丝袜在线放观看| 久久99午夜精品一区人妻| 伊人影院日本| 日产精品久久久一区二区| 大香蕉在线视频重口味毛片在线| 亚洲激情av| 国产人伦a片信息免费片| 91美女视频在线观看| 男人天堂网手机版婷婷| 青青草吊丝| 久久免费精彩视频| 在线视频免费播放一区| 免费精品国偷自产在线在线| 蜜桃久久一区| 夜夜 中文视频rt| 好爽,再快点啊哈嗯嗯嗯嗯| 婷婷综合网站| 国产精品欧美日韩久久| 黄色免费网| 少妇久久久久久久久| 黄站在线免费观看| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 60秒不遮不挡| 一二区在线观看视频| 日韩视频小说在线观看| 中文字幕片| 九久久九精品视频| 99re9在线| 五月丁香亭亭| 日韩无码成人电影| 丰满人妻一区二区三区大胸懂色 | 日韩99神马视频播放| 人妻久热在线| 67914亚洲精品| 水野优香在线观看| 激情久久久| 国产欧美一区激情交| 另类一区| 熟女人妻一区二区三区| 99在线无码精品秘 入口黑人| 26uuu欧美日韩| 欧美日韩大黄片| 手机在线免费看的av| 一个人免费视频观看在线WWW| 亚洲av噜噜噜噜噜噜| 激情综合网亚洲| 肏逼视频日本| 国产精品第一区第一页| 色哟哟综合| 日本日逼高清| 久久精品毛片免费不卡| 91小视频| 精品国产精品一区二区| 99久久久久| 亚洲国产第一页综合视频| 日韩国语字幕| 天天日日本| 成人五月天色网| 加勒比伊人影院| 亚洲素人综合| 99re久久| 福利视频香蕉免费一区二区在线| 韩国三级一线观看久| 亚洲国产成人福利在线观看|