Skip to content

Commit 6db5f3a

Browse files
committed
style: comment of remove MinIO
1 parent 780156e commit 6db5f3a

1 file changed

Lines changed: 87 additions & 40 deletions

File tree

README.md

Lines changed: 87 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
- Node:16.14.2
9090
- npm:8.5.0
9191

92-
**Step2:启动MySQL、Redis、Minio**
92+
**Step2:启动MySQL、Redis**
9393

9494
**step3:下载本仓库到本地**
9595

@@ -106,6 +106,44 @@
106106
1. 进入到blog-consumer目录,在IDEA中打开,等待Maven自动配置
107107
2. 运行启动类:/src/main/java/com/hackyle/blog/consumer/BlogConsumerApp.java
108108

109+
**Optional Step4:配置静态资源的存取**(如果不需要上传图片等静态资源可不配置)
110+
111+
1. 进入配置文件:application-dev.yml,配置file-storage-path和file-domain
112+
2. 下载Nginx,编辑配置文件:conf/nginx.conf,然后启动
113+
114+
```
115+
worker_processes 1;
116+
117+
events {
118+
worker_connections 1024;
119+
}
120+
121+
http {
122+
include mime.types;
123+
default_type application/octet-stream;
124+
125+
sendfile on;
126+
keepalive_timeout 65;
127+
128+
server {
129+
listen 80;
130+
server_name localhost;
131+
132+
location / {
133+
# 这里需要和application-dev.yml中的file-storage-path一样
134+
alias D:\\A03-Program\\A-Programming\\GitHub\\Blog\\res.hackyle.com\\;
135+
}
136+
137+
error_page 500 502 503 504 /50x.html;
138+
location = /50x.html {
139+
root html;
140+
}
141+
}
142+
}
143+
```
144+
145+
146+
109147
# 设计与实现概述
110148

111149
- 所有的请求全部打在Nginx上,使用Nginx进行分流到不同的本地服务上
@@ -166,30 +204,19 @@ Redis:100MB
166204

167205

168206

169-
## 静态资源存储器Minio
207+
## 静态资源存储
170208

171209
**存储所有的静态资源文件:**
172210

173211
- 图片
174-
175212
- 视频(由于网站的带宽比较小,不直接存放视频文件,存放于第三方站点上)
176-
177213
- 音乐
178-
179214
- Word、PDF等文档
180-
181215
- 其他资源文件
182216

183-
**环境准备**
184217

185-
- cd /opt/minio
186-
- wget https://dl.min.io/server/minio/release/linux-amd64/minio
187-
- chmod +x minio
188-
- MINIO_ROOT_USER=kyle-minio MINIO_ROOT_PASSWORD=hackyle-minio nohup ./minio server /data/minio-data --console-address ":9001" >./init.log 2>&1 &
189218

190-
191-
192-
**设定:访问Minio中的静态资源通过以下域:https://res.hackyle.com**
219+
**设定静态资源通过以下域访问:https://res.hackyle.com**
193220

194221
1. 为域(res.hackyle.com)申请DigiCert 免费版 SSL,下载key和pem文件
195222

@@ -198,42 +225,62 @@ Redis:100MB
198225
3. 配置Nginx
199226

200227
```
201-
# MinIO静态资源服务
228+
# 静态资源服务:res.conf
202229
server {
203-
listen 80;
204-
server_name res.hackyle.com;
205-
206-
#地址重写到https
207-
rewrite ^(.*)$ https://$host$1;
230+
listen 80;
231+
server_name res.hackyle.com;
232+
233+
#地址重写到https
234+
rewrite ^(.*)$ https://$host$1;
208235
}
209-
210236
server {
211-
listen 443 ssl http2;
212-
listen [::]:443 ssl http2;
213-
server_name res.hackyle.com;
214-
215-
ssl_certificate "/etc/nginx/cert/res.hackyle.com.pem";
216-
ssl_certificate_key "/etc/nginx/cert/res.hackyle.com.key";
217-
ssl_session_cache shared:SSL:1m;
218-
ssl_session_timeout 10m;
219-
ssl_ciphers HIGH:!aNULL:!MD5;
220-
ssl_prefer_server_ciphers on;
221-
222-
#对外提供静态资源的地址:https://res.hackyle.com/桶名/年份/月份/uuid.文件拓展名
223-
location / {
224-
proxy_pass http://localhost:9000/;
225-
}
226-
237+
listen 443 ssl http2;
238+
listen [::]:443 ssl http2;
239+
server_name res.hackyle.com;
240+
241+
ssl_certificate "/etc/nginx/cert/res.hackyle.com.pem";
242+
ssl_certificate_key "/etc/nginx/cert/res.hackyle.com.key";
243+
ssl_session_cache shared:SSL:1m;
244+
ssl_session_timeout 10m;
245+
ssl_ciphers HIGH:!aNULL:!MD5;
246+
ssl_prefer_server_ciphers on;
247+
248+
#==存在问题:凡是不是从主页跳转到文章页面,都会被拦截
249+
#防盗链:验证所有请求中的Referer是否来自*.hackyle.com,否则响应403
250+
#valid_referers blocked *.hackyle.com;
251+
# if ($invalid_referer){
252+
# return 403;
253+
#}
254+
255+
# https://res.hackyle.com/业务名/年份/月份/uuid.文件拓展名
256+
location / {
257+
alias /data/res.hackyle.com/;
258+
}
227259
}
228260
```
229261

262+
**确定静态资源的存储目录:**/data/res.hackyle.com/
263+
264+
- 存储示例:/data/res.hackyle.com/业务名/年份/月份/文件名.拓展名
265+
- 例如博客(blog.hackyle),业务名为“blog”
266+
267+
268+
269+
**主要步骤**
270+
271+
1. 在云服务器上,配置一个目录,专门存放静态资源(一般是图片),例如:/data/res.hackyle.com/
272+
273+
2. 博客中的上传操作,经过文件流写到该个目录下
274+
275+
3. 对外还是以https://res.hackyle.com的方式提供访问,通过nginx,解析到该个文件夹
230276

277+
231278

232-
**测试:**
279+
**移除Minio**
233280

234-
1. 创建一个hello桶,设置为public,上传一张图片在该桶下
281+
- minio是分布式的文件存储系统,文件会被分割为多个块,分布式存储于多个节点上,这对于简单系统的静态资源管理十分繁杂、冗余
235282

236-
2. 访问:res.hackyle.com/hello/balloon.jpg
283+
- minio存储在单机节点上时,会产生多个文件夹,不方便备份、数据恢复
237284

238285
## Nginx
239286

0 commit comments

Comments
 (0)