部署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权限
权限设置为全部可读