搭建私人npm倉庫并配置域名使用nginx代理

搭建

搭建使用verdaccio插件

以下環(huán)境:centOS 7

1、安裝node+npm

sudo yum -y install nodejs

或者官網(wǎng)直接下載包,解壓之后軟鏈bin下的執(zhí)行文件到 /usr/bin下(比較靠譜)

# 在你想放node的地方創(chuàng)建文件夾nodejs,比如 /opt/nodejs
cd /opt/nodejs
# 去https://nodejs.org/dist/找到你想安裝的版本linux的tar.xz包,右鍵復(fù)制鏈接地址
wget https://nodejs.org/dist/v16.4.2/node-v16.4.2-linux-x64.tar.xz

# 解壓
xz -d node-v16.4.2-linux-x64.tar.xz
tar -xvf node-v16.4.2-linux-x64.tar
    
# 進(jìn)入目錄
cd node-v16.4.2-linux-x64
    
# 創(chuàng)建軟連接
ln -s /opt/nodejs/node-v16.4.2-linux-x64/bin/node /usr/bin/node
ln -s /opt/nodejs/node-v16.4.2-linux-x64/bin/npm /usr/bin/npm
ln -s /opt/nodejs/node-v16.4.2-linux-x64/bin/npx /usr/bin/npx

# 測(cè)試
node -v
npm -v

2、安裝verdaccio

npm i verdaccio -g

安裝成功之后可啟動(dòng)verdaccio

verdaccio

如果出現(xiàn)command not found的問題,可能是你的全局node_modules沒有在配置進(jìn)環(huán)境變量,輸入以下命令即可解決。

echo -e "export PATH=$(npm prefix -g)/bin:$PATH" >> ~/.bashrc && source ~/.bashrc

啟動(dòng)verdaccio時(shí)可以看到配置文件所在位置,vim 配置文件
底部加入listen:0.0.0.0:4873即可

3、使用pm2守護(hù)verdaccio

npm i pm2 -g

使用pm2啟動(dòng)verdaccio時(shí),需要找到verdaccio的全路徑

npm root -g # 獲取全局node_modules位置  如:/opt/nodejs/node-v16.4.2-linux-x64/lib/node_modules

pm2 start /opt/nodejs/node-v16.4.2-linux-x64/lib/node_modules/verdaccio/bin/verdaccio

4、安裝nginx

sudo yum install -y nginx

安裝完成之后nginx -v測(cè)試是否成功
開啟機(jī)器的80端口,如果加https,則還需要開啟443端口

# 打開`nginx.conf`
vim /etc/nginx/nginx.conf

# 在http內(nèi)最下面添加
http{
  ...
  server {
  ...
  }
  include /conf.d/*.conf; # 添加這一行,切記要分號(hào)!
  ...
}

保存后進(jìn)入conf.d文件夾

vim /etc/nginx/conf.d/npm.xxxx.com.conf

添加如下內(nèi)容

server {
        listen 80;
        listen 443 ssl;
        server_name npm.xxxx.com;

        # ssl配置與其他網(wǎng)站配置一樣
        ssl_certificate /etc/nginx/ssl/xxxx.com_combined.crt;
        ssl_certificate_key /etc/nginx/ssl/xxxx.com.key;
        ssl_ciphers 'xxxxxxxxx';
        ssl_prefer_server_ciphers on;

        access_log /var/log/nginx/npm.xxxx.com.access.log;
        error_log /var/log/nginx/npm.xxxx.com.error.log;

        # 下面是重點(diǎn)
        location / {
                # 真實(shí)發(fā)出請(qǐng)求的客戶端IP
                proxy_set_header X-Real-IP $remote_addr;
                # 記錄代理信息,每經(jīng)過一級(jí)代理(匿名代理除外),代理服務(wù)器都會(huì)把這次請(qǐng)求的來源IP追加在X-Forwarded-For中
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                # $host變量的值按照如下優(yōu)先級(jí)獲得:
                # 請(qǐng)求行中的host.
                # 請(qǐng)求頭中的Host頭部.
                # 與一條請(qǐng)求匹配的server name.
                proxy_set_header Host $host;
                # 用于識(shí)別協(xié)議(HTTP 或 HTTPS),其中使用的客戶端連接到代理或負(fù)載平衡器一個(gè)真實(shí)的標(biāo)準(zhǔn)報(bào)頭
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_pass http://0.0.0.0:4873;
                # off參數(shù)取消proxy_redirect從先前配置級(jí)別繼承的指令的效果
                proxy_redirect off;
        }
}

最后,nginx -t沒問題的話,直接nginx -s reload即可成功訪問。(域名dns解析略過~)

刪除發(fā)布的包

cd /home/**/verdaccio/storage
rm -rf /要?jiǎng)h除的包名

刷新即可發(fā)現(xiàn)網(wǎng)頁上已經(jīng)沒有了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 因?yàn)闃I(yè)務(wù)安全需要等種種原因,不能夠把插件都發(fā)布到公共的npm倉庫,所以需要搭建自己的私有npm倉庫,最近自己搭建了...
    衣桉雁閱讀 940評(píng)論 0 2
  • 為什么需要搭建私有 npm -搭建公司內(nèi)部中臺(tái)做鋪墊,代碼屬于公司資產(chǎn)-團(tuán)隊(duì)內(nèi)部使用一些待完善package半成品...
    Sunshine_Boys閱讀 2,230評(píng)論 0 1
  • Sinopia搭建 1.安裝NodeJS及NPM 在Node.js中文網(wǎng)選擇對(duì)應(yīng)的系統(tǒng)進(jìn)行下載并安裝,安裝完成后即...
    大斜丸閱讀 5,229評(píng)論 2 1
  • 1、服務(wù)器搭建 1. 安裝node 環(huán)境 2. 安裝verdaccio npm install -g verdac...
    Fv_8ea2閱讀 4,618評(píng)論 0 0
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,835評(píng)論 28 54

友情鏈接更多精彩內(nèi)容