欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用nginx搭建creates.io鏡像的教程詳解

 更新時(shí)間:2023年12月26日 08:32:13   作者:Skyer119  
在Rust開發(fā)中,經(jīng)常需要使用Cargo從crates.io下載依賴,而國(guó)內(nèi)幾乎沒(méi)有好用的crates.io鏡像,使用本文就來(lái)使用使用nginx搭建creates.io鏡像吧

在Rust開發(fā)中,經(jīng)常需要使用Cargo從crates.io下載依賴,而國(guó)內(nèi)幾乎沒(méi)有好用的crates.io鏡像,大多都只對(duì)crates.io-index和crates.io進(jìn)行了鏡像,而最重要的static.crates.io卻沒(méi)有鏡像。迫不得已只能自己搭建。眾所周知,Cargo下載依賴,實(shí)際分為三步:

  • 獲取索引(Fetch index)
  • 查詢下載路徑(Redirect location)
  • 下載資源(*.crate文件)

因此,搭建crates.io鏡像也需要分為三個(gè)模塊:

  • crates.io-index
  • crates.io
  • static.crates.io

零、啟用nginx的緩存功能

注:此處均為與搭建creates.io鏡像相關(guān)的配置項(xiàng)

http {
  # 開啟全局緩存,并配置存儲(chǔ)路徑(/var/lib/crates.io)和大小(32g)
  proxy_cache_path /var/lib/crates.io keys_zone=STATIC:100m levels=1:2 inactive=120h max_size=32g;
}

一、緩存creates.io

server {
  listen 7011;
  location / {
    proxy_pass https://crates.io;
    proxy_ssl_server_name on;
    proxy_buffering on;
    proxy_cache STATIC;
    proxy_cache_valid 301 302 307 308 72h;
    proxy_cache_valid any 10s;
    proxy_cache_revalidate on;
    proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
    proxy_redirect https://static.crates.io/ http://$host:7012/;
  }
}

此處,我們將http://localhost:7011反向代理到https://crates.io,并對(duì)結(jié)果進(jìn)行緩存。其中狀態(tài)碼為301,302,307,308的緩存72小時(shí),其余狀態(tài)碼緩存10秒。

二、緩存static.crates.io

server {
  listen 7012;
  location / {
    proxy_pass https://static.crates.io;
    proxy_ssl_server_name on;
    proxy_buffering on;
    proxy_cache STATIC;
    proxy_cache_valid 200 72h;
    proxy_cache_valid 400 502 504 10s;
    proxy_cache_valid any 1m;
    proxy_cache_revalidate on;
    proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
  }
}

此處,我們將http://localhost:7012反向代理到https://static.crates.io,并對(duì)結(jié)果進(jìn)行緩存。

需要注意到在 緩存creates.io 部分,proxy_redirect參數(shù),就是將原本重定向目標(biāo)從https://static.crates.io/修改為http://$host:7012/

三、緩存creates.io-index

在前幾步中,我們已經(jīng)將一個(gè)creates.io鏡像的內(nèi)容部分搭建完畢,最后就是索引,眾所周知,crates.io是使用git倉(cāng)庫(kù) https://github.com/rust-lang/crates.io-index.git 作為官方索引的,因此我們只需要將這個(gè)倉(cāng)庫(kù)clone到本地

cd /home/ # 此處將索引clone到/home目錄下
git clone https://github.com/rust-lang/crates.io-index.git

然后修改/home/crates.io-index/config.json,將https://crates.io修改為我們剛剛的代理地址http://localhost:7011,除了lo地址也可以用本機(jī)的其他ip地址。

sed -i 's+https://crates.io+http://localhost:7011+g' /home/crates.io-index/config.json

最后依然是nginx配置:

server {
  listen 7010;
  location /crates.io-index/ {
    root /home;
  }
}

以上,一個(gè)鏡像源就配置完成啦~~~

四、在開發(fā)環(huán)境配置鏡像源

修改HOME目錄下的.cargo/config.toml文件(也可以是不帶后綴名的config文件)如果沒(méi)有就新建一個(gè)。

Linux/Unix系統(tǒng)為 $HOME/.carog/config.toml

Windows系統(tǒng)為 $USERPROFILE/.carog/config.toml

內(nèi)容為:

[source.crates-io]
replace-with = 'local'
[source.local]
registry = "sparse+http://localhost:7010/crates.io-index/"

五、寫在最后

目前能夠找到的搭建creates.io鏡像源的文章,全部都是使用基于git over https的傳統(tǒng)方式,本篇文章則是采用最新的sparse稀疏索引方式,大幅加快獲取包的速度,搭建過(guò)程更加便捷。

另外,對(duì)于索引的更新,可以通過(guò)shell腳本+crontab定時(shí)任務(wù)來(lái)完成自動(dòng)更新:

#!/usr/bin/sh
cd /home/crates.io-index/
git pull

保存為/home/crates.io-index/update-index.sh,并添加執(zhí)行權(quán)限:

chmod 755 /home/crates.io-index/update-index.sh

添加定時(shí)任務(wù):

# crontab -e
0 * * * * /home/crates.io-index/update-index.sh > /home/crates.io-index/update-index.log 2>&1 &

到此這篇關(guān)于使用nginx搭建creates.io鏡像的教程詳解的文章就介紹到這了,更多相關(guān)nginx搭建creates.io鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 定期刪除OpenResty/Nginx大日志文件的方法

    定期刪除OpenResty/Nginx大日志文件的方法

    這篇文章主要介紹了定期刪除OpenResty/Nginx大日志文件的方法,文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • nginx代理轉(zhuǎn)發(fā)報(bào)錯(cuò)405?Method?Not?Allowed解決

    nginx代理轉(zhuǎn)發(fā)報(bào)錯(cuò)405?Method?Not?Allowed解決

    這篇文章主要為大家介紹了解決nginx代理轉(zhuǎn)發(fā)報(bào)錯(cuò)405?Method?Not?Allowed解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Nginx如何限制IP訪問(wèn)只允許特定域名訪問(wèn)

    Nginx如何限制IP訪問(wèn)只允許特定域名訪問(wèn)

    我們?cè)谑褂玫臅r(shí)候會(huì)遇到很多的惡意IP攻擊,這個(gè)時(shí)候就要用到Nginx 禁止IP訪問(wèn)了,下面這篇文章主要給大家介紹了關(guān)于Nginx如何限制IP訪問(wèn)只允許特定域名訪問(wèn)的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • nginx文件強(qiáng)制下載的配置方法

    nginx文件強(qiáng)制下載的配置方法

    這篇文章主要介紹了nginx文件強(qiáng)制下載的配置方法,需要的朋友可以參考下
    2016-02-02
  • 全面解析Nginx到底能做什么

    全面解析Nginx到底能做什么

    本文只針對(duì)Nginx在不加載第三方模塊的情況能處理哪些事情,由于第三方模塊太多所以也介紹不完,當(dāng)然本文本身也可能介紹的不完整,具體內(nèi)容詳情大家跟隨小編一起通過(guò)本文學(xué)習(xí)吧
    2018-10-10
  • 詳解nginx代理天地圖做緩存解決跨域問(wèn)題

    詳解nginx代理天地圖做緩存解決跨域問(wèn)題

    這篇文章主要介紹了詳解nginx代理天地圖做緩存解決跨域問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • Nginx實(shí)現(xiàn)異步訪問(wèn)mysql的配置方法

    Nginx實(shí)現(xiàn)異步訪問(wèn)mysql的配置方法

    這篇文章主要介紹了Nginx實(shí)現(xiàn)異步訪問(wèn)mysql的配置方法,本文先是講解了安裝配置方法,然后給出了使用方法,需要的朋友可以參考下
    2015-06-06
  • linux下nginx負(fù)載均衡搭建的方法步驟

    linux下nginx負(fù)載均衡搭建的方法步驟

    本篇文章主要介紹了linux下nginx負(fù)載均衡搭建的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 為什么 Nginx 比 Apache 更牛

    為什么 Nginx 比 Apache 更牛

    為什么Nginx在處理高并發(fā)方面要優(yōu)于httpd,我們先從兩種web服務(wù)器的工作原理以及工作模式說(shuō)起。對(duì)Nginx對(duì)比 Apache的相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2021-02-02
  • 同一臺(tái)服務(wù)器安裝多個(gè)Nginx的方法總結(jié)

    同一臺(tái)服務(wù)器安裝多個(gè)Nginx的方法總結(jié)

    在同一臺(tái)服務(wù)器上安裝多個(gè)nginx完全沒(méi)有問(wèn)題,但有些地方是需要注意的,這篇文章為大家整理了一些常會(huì)遇到的問(wèn)題以及解決方法,需要的可以參考一下
    2023-08-08

最新評(píng)論