作者:艾文编程
职业:程序员,BAT大厂资深工程师
摘要:搜索/推荐场景下给用户展示大量的图片信息,那么这些数据是通过专门的图片服务器来访问的。 我们在基于知识图谱的智能搜索系统中,对搜索出来的每条记录都有一个图片数据,那么我们通过搭建图片服务器来实现
服务器介绍
在实际开发中,我们会有很多处理不同功能的服务器
1、 应用服务器:负责部署我们的应用
2、数据库服务器:运行我们的数据库
3、文件服务器:负责存储用户上传文件的服务器(例如:图片/js/css等静态资源)
什么是图片服务器
1、图片服务器
专门为图片读写操作优化的独立服务器。
2、Web 服务器
通过 Web 服务器,用户可以访问静态网页、Web应用程序、数据库,或者上传下载图片以及其他多媒体内容。服务器中分离出来。
3、图片服务器和Web服务器分离
如果网站存在大量图片读写操作,把图片服务分离出来,建立独立的图片服务器
图片服务器的优势
1、分担 Web 服务器的 I/O 负载
将耗费资源的图片服务分离出来,提高服务器的性能和稳定性
2、能够专门对图片服务器进行优化
为图片服务设置有针对性的缓存方案,减少带宽成本,提高访问速度
3、提高网站的可扩展性
通过增加图片服务器,提高图片吞吐能力
常见的图片存储方案
方案一:使用nginx搭建图片服务器
方案二:使用开源的分布式文件存储系统,例如Fastdfs、HDFS等
方案三:使用云存储,例如阿里云、七牛云等
0到1搭建图片服务器
nginx下载和安装
第一步:下载-解压
1、下载nginx
curl -O https://nginx.org/download/nginx-1.22.0.tar.gz
2、解压
tar -zxf nginx-1.22.0.tar.gz
第二步:安装
1、安装在指定的目录
./configure --prefix=/usr/local/nginx
2、编译
在nginx安装目录(nginx-1.22.0 目录下),执行该命令~
make
第三步: 编译并安装
ps: 会在/usr/local/nginx目录下生成目录
sudo make install
nginx常见命令
1、启动nginx:sudo nginx
2、关闭nginx:sudo nginx -s stop
3、重启nginx:sudo nginx -s reload
图片服务器配置
配置文件:/usr/local/nginx/conf/nginx.conf
listen 8081;#监听端口
server_name localhost;# 图谱服务器地址
location ~ .*\.(gif|jpg|pdf|jpeg|png)$ {
root /data/www;# 图片存储路径
error_page 404 /img/default.jpg;# 默认图片
}
其中:$ ll /data/www/img/* 是存储图片的位置
图片服务器访问
1、通过nginx 访问图片静态资源
2、如果图片访问不到,提供默认的图片
针对访问图片是否存在,验证效果(左:图片资源存在;右:图片资源不存在)
总结
本节重点从0-1搭建图片服务器,为后续知识图片搜索系统访问图片提供基础服务。