# MinIO Server 配置指南 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) ## 配置目录 默认的配置目录是 `${HOME}/.minio`,你可以使用`--config-dir`命令行选项重写之。MinIO server在首次启动时会生成一个新的`config.json`,里面带有自动生成的访问凭据。 ```sh minio server --config-dir /etc/minio /data ``` 截止到 MinIO `RELEASE.2018-08-02T23-11-36Z` 版本, MinIO server 的配置文件(`config.json`) 被存储在通过 `--config-dir` 指定的目录或者默认的 `${HOME}/.minio` 目录。 但是从 `RELEASE.2018-08-18T03-49-57Z` 版本之后, 配置文件 (仅仅), 已经被迁移到存储后端 (存储后端指的是启动一个服务器的时候,传递给MinIO server的目录)。 您可以使用`--config-dir`指定现有配置的位置, MinIO 会迁移 `config.json` 配置到你的存储后端。 迁移成功后,你当前 `--config-dir` 目录中的 `config.json` 将被重命名为 `config.json.deprecated`。 迁移后,所有现有配置都将得到保留。 此外,`--config-dir`现在是一个旧配置,计划在将来删除,因此请相应地更新本地startup和ansible脚本。 ```sh minio server /data ``` MinIO还使用管理员凭据对所有配置,IAM和策略内容进行加密。 ### 证书目录 TLS证书存在``${HOME}/.minio/certs``目录下,你需要将证书放在该目录下来启用`HTTPS` 。如果你是一个乐学上进的好青年,这里有一本免费的秘籍传授一你: [如何使用TLS安全的访问minio](https://docs.min.io/cn/how-to-secure-access-to-minio-server-with-tls). 以下是一个具有TLS证书的MinIO server的目录结构。 ```sh $ mc tree --files ~/.minio /home/user1/.minio └─ certs ├─ CAs ├─ private.key └─ public.crt ``` 你可以使用`--certs-dir`命令行选项提供自定义certs目录。 #### 凭据 只能通过环境变量`MINIO_ACCESS_KEY` 和 `MINIO_SECRET_KEY` 更改MinIO的admin凭据和root凭据。使用这两个值的组合,MinIO加密存储在后端的配置 ``` export MINIO_ACCESS_KEY=minio export MINIO_SECRET_KEY=minio13 minio server /data ``` ##### 使用新的凭据轮换加密 另外,如果您想更改管理员凭据,则MinIO将自动检测到该凭据,并使用新凭据重新加密,如下所示。一次只需要设置如下所示的环境变量即可轮换加密配置。 > 旧的环境变量永远不会在内存中被记住,并且在使用新凭据迁移现有内容后立即销毁。在服务器再次成功重启后,你可以安全的删除它们。 ``` export MINIO_ACCESS_KEY=newminio export MINIO_SECRET_KEY=newminio123 export MINIO_ACCESS_KEY_OLD=minio export MINIO_SECRET_KEY_OLD=minio123 minio server /data ``` 迁移完成后, 服务器会自动的取消进程空间中的`MINIO_ACCESS_KEY_OLD` and `MINIO_SECRET_KEY_OLD`设置。 > **注意: 在下一次服务重新启动前,要确保移除脚本或者服务文件中的 `MINIO_ACCESS_KEY_OLD` and `MINIO_SECRET_KEY_OLD`, 避免现有的内容被双重加密** #### 区域 ``` KEY: region 服务器的物理位置标记 ARGS: name (string) 服务器的物理位置名字,例如 "us-west-rack2" comment (sentence) 为这个设置添加一个可选的注释 ``` 或者通过环境变量 ``` KEY: region 服务器的物理位置标记 ARGS: MINIO_REGION_NAME (string) 服务器的物理位置名字,例如 "us-west-rack2" MINIO_REGION_COMMENT (sentence) 为这个设置添加一个可选的注释 ``` 示例: ```sh export MINIO_REGION_NAME="my_region" minio server /data ``` ### 存储类型 默认情况下,标准存储类型的奇偶校验值设置为N/2,低冗余的存储类型奇偶校验值设置为2。在[此处](https://github.com/minio/minio/blob/master/docs/zh_CN/erasure/storage-class/README.md)了解有关MinIO服务器存储类型的更多信息。 ``` KEY: storage_class 定义对象级冗余 ARGS: standard (string) 设置默认标准存储类型的奇偶校验计数,例如"EC:4" rrs (string) 设置默认低冗余存储类型的奇偶校验计数,例如"EC:2" comment (sentence) 为这个设置添加一个可选的注释 ``` 或者通过环境变量 ``` KEY: storage_class 定义对象级冗余 ARGS: MINIO_STORAGE_CLASS_STANDARD (string) 设置默认标准存储类型的奇偶校验计数,例如"EC:4" MINIO_STORAGE_CLASS_RRS (string) 设置默认低冗余存储类型的奇偶校验计数,例如"EC:2" MINIO_STORAGE_CLASS_COMMENT (sentence) 为这个设置添加一个可选的注释 ``` ### 缓存 MinIO为主要的网关部署提供了缓存存储层,使您可以缓存内容以实现更快的读取速度,并节省从云中重复下载的成本。 ``` KEY: cache 添加缓存存储层 ARGS: drives* (csv) 逗号分隔的挂载点,例如 "/optane1,/optane2" expiry (number) 缓存有效期限(天),例如 "90" quota (number) 以百分比限制缓存驱动器的使用,例如 "90" exclude (csv) 逗号分隔的通配符排除模式,例如 "bucket/*.tmp,*.exe" after (number) 缓存对象之前的最小可访问次数 comment (sentence) 为这个设置添加一个可选的注释 ``` 或者通过环境变量 ``` KEY: cache 添加缓存存储层 ARGS: MINIO_CACHE_DRIVES* (csv) 逗号分隔的挂载点,例如 "/optane1,/optane2" MINIO_CACHE_EXPIRY (number) 缓存有效期限(天),例如 "90" MINIO_CACHE_QUOTA (number) 以百分比限制缓存驱动器的使用,例如 "90" MINIO_CACHE_EXCLUDE (csv) 逗号分隔的通配符排除模式,例如 "bucket/*.tmp,*.exe" MINIO_CACHE_AFTER (number) 缓存对象之前的最小可访问次数 MINIO_CACHE_COMMENT (sentence) 为这个设置添加一个可选的注释 ``` ### 浏览器 |参数|类型|描述| |:---|:---|:---| |``browser``| _string_ | 开启或关闭浏览器访问,默认是开启的,你可以通过``MINIO_BROWSER``环境变量进行修改| 示例: ```sh export MINIO_BROWSER=off minio server /data ``` #### 通知 |参数|类型|描述| |:---|:---|:---| |``notify``| |通知通过以下方式开启存储桶事件通知,用于lambda计算| |``notify.amqp``| |[通过AMQP发布MinIO事件](https://docs.min.io/cn/minio-bucket-notification-guide#AMQP)| |``notify.mqtt``| |[通过MQTT发布MinIO事件](https://docs.min.io/cn/minio-bucket-notification-guide#MQTT)| |``notify.elasticsearch``| |[通过Elasticsearch发布MinIO事件](https://docs.min.io/cn/minio-bucket-notification-guide#Elasticsearch)| |``notify.redis``| |[通过Redis发布MinIO事件](https://docs.min.io/cn/minio-bucket-notification-guide#Redis)| |``notify.nats``| |[通过NATS发布MinIO事件](https://docs.min.io/cn/minio-bucket-notification-guide#NATS)| |``notify.postgresql``| |[通过PostgreSQL发布MinIO事件](https://docs.min.io/cn/minio-bucket-notification-guide#PostgreSQL)| |``notify.kafka``| |[通过Apache Kafka发布MinIO事件](https://docs.min.io/cn/minio-bucket-notification-guide#apache-kafka)| |``notify.webhook``| |[通过Webhooks发布MinIO事件](https://docs.min.io/cn/minio-bucket-notification-guide#webhooks)| ## 了解更多 * [MinIO Quickstart Guide](https://docs.min.io/cn/minio-quickstart-guide)