,环境配置)
需要获取完整包下载地址链接: https://pan.baidu.com/s/1heVB_JVxgChR4GcL1_iklw?pwdtyiv 提取码: tyiv通过PowerShell 启动脚本读取minio.env再用 NSSM 注册 Windows 服务。最终目录D:\minio\ ├── bin\ │ ├── minio.exe │ ├── mc.exe │ └── nssm.exe ├── certs\ │ ├── public.crt │ └── private.key ├── config\ │ ├── minio.env ├── data\ ├── license\ │ └── minio.license └── logs\ └── start-minio.ps1本说明以D盘为例子需要更换个位置的自行更改。如果使用社区版且不需要许可证可以不放minio.license。minio\bin\mc.exe 可以不需要这个是客户端工具。创建minio.env创建D:\minio\config\minio.env内容如下MINIO_ROOT_USERminio-root-admin MINIO_ROOT_PASSWORD替换成你的32位随机密码 MINIO_VOLUMESD:\minio\data MINIO_ADDRESS:9000 MINIO_CONSOLE_ADDRESS:9001 MINIO_CERTS_DIRD:\minio\certs MINIO_SERVER_URLhttps://s3.example.com MINIO_BROWSER_REDIRECT_URLhttps://s3-console.example.com MINIO_LICENSED:\minio\license\minio.license注意等号左右不要留空格。不要给值加反引号。如果没有许可证要求删除最后一行。域名替换成你的实际域名。certs证书换成自己的证书。创建启动脚本创建D:\minio\start-minio.ps1写入$ErrorActionPreference Stop $MinioExe D:\minio\bin\minio.exe $EnvFile D:\minio\config\minio.env if (-not (Test-Path $MinioExe)) { throw 找不到 MinIO 程序$MinioExe } if (-not (Test-Path $EnvFile)) { throw 找不到配置文件$EnvFile } # 读取 minio.env将变量加载到当前进程 Get-Content $EnvFile -Encoding UTF8 | ForEach-Object { $line $_.Trim() # 忽略空行和注释 if (-not $line -or $line.StartsWith(#)) { return } if ($line -notmatch ) { throw 无效的配置行$line } $name, $value $line -split , 2 $name $name.Trim() $value $value.Trim() [Environment]::SetEnvironmentVariable( $name, $value, [EnvironmentVariableTarget]::Process ) } if (-not $env:MINIO_ROOT_USER) { throw 未配置 MINIO_ROOT_USER } if (-not $env:MINIO_ROOT_PASSWORD) { throw 未配置 MINIO_ROOT_PASSWORD } if (-not $env:MINIO_VOLUMES) { throw 未配置 MINIO_VOLUMES } $Arguments ( server $env:MINIO_VOLUMES --address $env:MINIO_ADDRESS --console-address $env:MINIO_CONSOLE_ADDRESS ) if ($env:MINIO_CERTS_DIR) { $Arguments ( --certs-dir $env:MINIO_CERTS_DIR ) } # 仅 AIStor 等需要许可证的版本使用 if ($env:MINIO_LICENSE) { if (-not (Test-Path $env:MINIO_LICENSE)) { throw 找不到许可证$($env:MINIO_LICENSE) } $Arguments ( --license $env:MINIO_LICENSE ) } $MinioExe Arguments exit $LASTEXITCODE如果你的 MinIO 版本不支持--license参数删除minio.env中的MINIO_LICENSED:\minio\license\minio.license脚本就不会传递许可证参数。手动测试以管理员身份打开 PowerShellpowershell.exe -NoProfile -ExecutionPolicy Bypass -File D:\minio\start-minio.ps1成功后通常可以访问S3 APIhttps://服务器地址:9000 管理控制台https://服务器地址:9001按CtrlC停止测试。如果启动失败先直接检查版本及参数D:\minio\bin\minio.exe --version D:\minio\bin\minio.exe server --help注册 Windows 服务将 NSSM 的nssm.exe放到D:\minio\bin\nssm.exe然后用管理员 PowerShell 执行$Nssm D:\minio\bin\nssm.exe $PowerShell C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe $Nssm install MinIO $PowerShell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File D:\minio\start-minio.ps1设置工作目录 $Nssm set MinIO AppDirectory D:\minio设置标准输出和错误日志 $Nssm set MinIO AppStdout D:\minio\logs\minio-stdout.log $Nssm set MinIO AppStderr D:\minio\logs\minio-stderr.log开启日志轮转单个日志最大约 100 MB $Nssm set MinIO AppRotateFiles 1 $Nssm set MinIO AppRotateOnline 1 $Nssm set MinIO AppRotateBytes 104857600设置服务自动启动及异常重启 $Nssm set MinIO Start SERVICE_AUTO_START $Nssm set MinIO AppExit Default Restart $Nssm set MinIO AppRestartDelay 5000启动服务Start-Service MinIO验证服务查看状态Get-Service MinIO正常结果应为Status Name DisplayName ------ ---- ----------- Running MinIO MinIO查看监听端口Get-NetTCPConnection -State Listen | Where-Object LocalPort -in 9000, 9001测试健康检查Invoke-WebRequest https://127.0.0.1:9000/minio/health/live -SkipCertificateCheck如果当前 Windows PowerShell 不支持-SkipCertificateCheck可以使用curl.exe -k https://127.0.0.1:9000/minio/health/live服务管理命令Start-Service MinIO Stop-Service MinIO Restart-Service MinIO Get-Service MinIO修改minio.env后重启即可Restart-Service MinIO查看日志Get-Content D:\minio\logs\minio-stdout.log -Tail 100 Get-Content D:\minio\logs\minio-stderr.log -Tail 100实时查看Get-Content D:\minio\logs\minio-stdout.log -Tail 50 -Wait文件权限minio.env包含管理员密码建议限制访问icacls D:\minio\config\minio.env /inheritance:r icacls D:\minio\config\minio.env /grant:r Administrators:F SYSTEM:F保护私钥icacls D:\minio\certs\private.key /inheritance:r icacls D:\minio\certs\private.key /grant:r Administrators:F SYSTEM:F如果以后将服务改为专用账户运行还需要给该账户授予D:\minio\bin读取和执行D:\minio\config读取D:\minio\certs读取D:\minio\data修改D:\minio\logs修改删除服务如果需要重新注册Stop-Service MinIO -ErrorAction SilentlyContinue D:\minio\bin\nssm.exe remove MinIO confirm这样配置后MinIO 会读取D:\minio\config\minio.env启动并随 Windows 开机自动启动异常退出后约 5 秒自动重启。