mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-11-17 07:45:52 +01:00
86 lines
4.8 KiB
Markdown
86 lines
4.8 KiB
Markdown
---
|
||
id: uplinks(上行链路)
|
||
title: "上行链路"
|
||
---
|
||
*上行链路* 是指可以访问到外部包的外部注册服务器地址。
|
||
|
||
![上行链路](/img/uplinks.png)
|
||
|
||
### 用法
|
||
|
||
```yaml
|
||
uplinks:
|
||
npmjs:
|
||
url: https://registry.npmjs.org/
|
||
server2:
|
||
url: http://mirror.local.net/
|
||
timeout: 100ms
|
||
server3:
|
||
url: http://mirror2.local.net:9000/
|
||
baduplink:
|
||
url: http://localhost:55666/
|
||
```
|
||
|
||
### 配置
|
||
|
||
你可以定义多个上行链路,每一个都必须有唯一的名称(键值). 它们可以有多个属性:
|
||
|
||
| 属性 | 类型 | 必须的 | 范例 | 支持版本 | 描述 | 默认值 |
|
||
| ------------ | ------- | --- | --------------------------------------- | ------ | ----------------------------------------------------------------------------------------------------------- | ----- |
|
||
| url | string | 是 | https://registry.npmjs.org/ | 全部 | 外部注册服务器URL | npmjs |
|
||
| ca | string | 否 | ~./ssl/client.crt' | 全部 | SSL证书文件路径 | 无默认值 |
|
||
| timeout | string | 否 | 100ms | 全部 | 为请求设置新的超时时间 | 30s |
|
||
| maxage | string | 否 | 10m | 全部 | 请求返回信息时效,在此时间内不会发起相同的请求 | 2m |
|
||
| fail_timeout | string | 否 | 10m | 全部 | 请求在连续失败超过指定次数后的最长等待重试时间 | 5m |
|
||
| max_fails | number | 否 | 2 | 全部 | 请求连续失败的最大次数限制 | 2 |
|
||
| cache | boolean | 否 | [true,false] | >= 2.1 | 缓存下载的远程tarball文件到本地 | true |
|
||
| auth | list | 否 | [见下文](uplinks.md#auth-property) | >= 2.5 | 指定“授权authorization”请求头的内容 [详情见](http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules) | 禁用 |
|
||
| headers | list | 否 | authorization: "Bearer SecretJWToken==" | 全部 | 上行链路请求的请求头header列表 | 禁用 |
|
||
| strict_ssl | boolean | 否 | [true,false] | >= 3.0 | 为true时,会检测SSL证书的有效性 | true |
|
||
|
||
#### Auth属性
|
||
|
||
`auth` 属性内容是向上行链路发起请求时提供的授权令牌。例如使用默认环境变量:
|
||
|
||
```yaml
|
||
uplinks:
|
||
private:
|
||
url: https://private-registry.domain.com/registry
|
||
auth:
|
||
type: bearer
|
||
token_env: true # defaults to `process.env['NPM_TOKEN']`
|
||
```
|
||
|
||
或者使用一个指定的环境变量
|
||
|
||
```yaml
|
||
uplinks:
|
||
private:
|
||
url: https://private-registry.domain.com/registry
|
||
auth:
|
||
type: bearer
|
||
token_env: FOO_TOKEN
|
||
```
|
||
|
||
`token_env: FOO_TOKEN`内部将使用 `process.env['FOO_TOKEN']`
|
||
|
||
或者直接指定令牌:
|
||
|
||
```yaml
|
||
uplinks:
|
||
private:
|
||
url: https://private-registry.domain.com/registry
|
||
auth:
|
||
type: bearer
|
||
token: "token"
|
||
```
|
||
|
||
> 注意: `token`的优先级高于`token_env`
|
||
|
||
### 须知
|
||
|
||
* 自版本 `v2.3.0`以来, Verdaccio 不在使用Basic Authentication。verdaccio 所生成的所有令牌都基于 JWT ([JSON Web Token](https://jwt.io/))
|
||
* 上行链路必须是兼容`npm`的注册服务器 例如: *verdaccio*, `sinopia@1.4.0`, *npmjs registry*, *yarn registry*, *JFrog*, *Nexus* and more.
|
||
* 设置`cache` 为false可以帮助节省你的硬盘空间。 这将避免存储 `tarballs`,但是[它将保留元数据在文件夹里](https://github.com/verdaccio/verdaccio/issues/391)。
|
||
* 配置过多的上行链路会导致包查询速度变慢,这是因为相比较一个npm客户端每发送一次的请求,verdaccio却需要向每个上行链路都发送一次这样的请求
|
||
* 这些属性(timeout, maxage and fail_timeout) 的配置单位格式参考[NGINX measurement units](http://nginx.org/en/docs/syntax.html) |