应用场景
举例:
开发一款应用,在进行用户注册的时候需要上传头像,我们作为后台工程师要实现这个功能,应当将前端上传的的头像图片存放到服务器的某个文件夹(假如是/images)里。
如果在用户登录后我们需要显示该用户的头像,这时候前端就要向后台请求图片资源。对于刚学web编程的小朋友来说可能只尝试过通过jsp给前端页面提供工程下的图片资源。在前后端分离的情况下,通常我们都需要访问工程路径外图片资源,这时候我们该怎么办呢?
我们给出的基本思路是:用户注册成功后后台根据该用户头像图片的存放路径生成访问链接存入数据库,当用户登录成功后,后台给前端返回该用户的相关信息,并把头像图片访问链接返回给前端,前端通过链接直接就可以获取图片资源啦~
但是,要能够通过链接获取云服务器上的图片资源,我们需要搭建一个简易的图片资源服务器。
搭建一个简易的图片资源服务器
第一步:安装Nginx
1、安装nginx所需环境
①gcc安装
# yum install gcc-c++
②PCRE pcre-devel 安装
# yum install -y pcre pcre-devel
③ zlib 安装
# yum install -y zlib zlib-devel
④ OpenSSL 安装
# yum install -y openssl openssl-devel
2、安装nginx
① 下载nginx
# wget -c https://nginx.org/download/nginx-1.12.1.tar.gz
② 解压
# tar -zxvf nginx-1.12.1.tar.gz # cd nginx-1.12.1
③ 使用默认配置
# ./configure
④ 编译、安装
# make # make install
⑤ 启动nginx
首先进入该路径
# cd /usr/local/nginx/sbin/
启动命令
# ./nginx
其他命令
# ./nginx -s stop
# ./nginx -s quit
# ./nginx -s reload
⑥ 设置开机启动
添加一行:# vim /etc/rc.local
/usr/local/nginx/sbin/nginx
⑦ 查看nginx的版本及模块
/usr/local/nginx/sbin/nginx -V
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL5UDOwEDMwgDMyITMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
⑧ 防火墙中打开Nginx端口(默认的 80)
添加后就能在本机使用80端口访问了。
# vim /etc/sysconfig/iptables 添加如下端口行: -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 重启防火墙: # service iptables restart
第二步:配置nginx (将图片存放路径进行映射配置)
这里我将/images设为图片资源的存放路径
找到nginx.conf,我的是在 /usr/local/nginx/conf 路径下
修改 /usr/local/nginx/conf/nginx.conf 在默认的server里再添加一个location并指定实际路径:
location /www {
alias /images;
autoindex on;
}
说明
alias 是将 /www 映射到 /images
autoindex on便是打开浏览功能
修改完后需要重新启动nginx
./nginx -s reload
第三步:修改用户访问权限
chmod 777 -R /images
搭建完成!
往/images文件夹里上传一张照片001.jpg
就可以通过浏览器访问http:// + ip地址 + /www/001.jpg 获取到该图片资源啦~~
eg: http://42.105.203.60/www/001.jpg
参考:用FastDFS一步步搭建文件管理系统
参考:搭建资源服务器(3)---开始搭建Nginx图片服务器