跳到主要内容

部署MinIO

MinIO 是图片存储服务,如果使用OSS ,那么这步可以忽略

创建文件
mkdir -p /opt/data/minIO/data

启动命令
docker run -d -p 9000:9000 \
--name minio \
-v /opt/data/minIO/data:/data \
-e "MINIO_ACCESS_KEY=root" \
-e "MINIO_SECRET_KEY=root1234" \
registry.cn-beijing.aliyuncs.com/shoptnt/minio:1.0 server /data

详细见 : min.io官网https://docs.min.io/docs/minio-quickstart-guide.html

NGINX 缩略图设置

安装NGINX
安装依赖
// nginx 所需要的依赖库
yum install -y gcc gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
// 缩略图所需要的依赖库
sudo yum install -y gd-devel.x86_64

安装NGINX
cd /usr/local
wget https://nginx.org/download/nginx-1.19.2.tar.gz
tar -zxvf nginx-1.19.2.tar.gz
cd nginx-1.19.2
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module
//编译安装
make && make install
cd /usr/local/nginx/conf

nginx 配置

vim nginx.conf

覆盖粘贴如下内容

worker_processes  4;
user root;
error_log logs/error.log;
#pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#避免header请求过大,出现400错误
client_header_buffer_size 16k;
#设置文件上传最大为20M
client_max_body_size 20m;
large_client_header_buffers 8 16k;
server_names_hash_bucket_size 64;
gzip on;
gzip_min_length 5k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 4;
gzip_vary on;
resolver 223.5.5.5;

############################## minIO ##############################
server {
listen 80;
server_name minio.javamall.com.cn;
location ~* /(.*)_(\d+)x(\d+)$ {
set $url $1;
set $width $2;
set $height $3;

if ( $width = $height ){
set $flag 1;
}
if ( "$flag" != 1 ) {
return 415;
}

if ( $height ~* "^(300|400|800)" ){
set $flag 1;
}

if ( "$flag" != 1 ) {
return 415;
}

image_filter resize $width $height;
image_filter_buffer 10M;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://192.168.2.149:9000/$url;
proxy_pass_header User-Agent;
error_page 497 301 https://$http_host$request_uri;
}

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://192.168.2.149:9000/;
proxy_pass_header User-Agent;
}

}
}

第11行的 ‘if ( $height ~* "^(300|400|800)" ){’

其中 300 400 800 是缩略图规则,需要和管理里端的 设置管理-网店设置-系统设置-商品设置 的尺寸保持一致。

nginx 命令

启动命令

/usr/local/nginx/sbin/nginx

重启命令

/usr/local/nginx/sbin/nginx -s reload

shoptnt 参数设置

进入设置

用户名设置为 docker 启动的 MINIO_ACCESS_KEY (用户名最低3位) 密码设置为docker 启动的 MINIO_SECRET_KEY (密码最低8位) minIO服务地址 : 没有被nginx 代理的地址,API调用的地址,内网地址。 访问地址 : 为nginx代理的 地址,可以域名可以IP。 如果 内网地址和API 服务器不互通,可以使用访问地址为服务地址,但是需要手动创建 BucketPolicy

进入MinIO管理端的

参数设置说明

需要手动输入以下4个名称

MinIO设置

设置bucket权限

权限设置为全部可读