1、简介
对于网站而言,文件服务器是一个绕不开的话题,因为我们上传的资源通常都放在文件服务器中管理,比较常见的有NAS服务器、FTP服务器等。而Nginx则常用来代理访问文件服务器中的资源,比如网站上面的banner图片、免责条款文件等,下面我就来实现这个需求。
2、模拟NAS服务
真实NAS服务是一个独立服务器,然后通过挂载方式,绑定到应用服务器的某个目录下,使用时就像是应用服务器自己本身的文件目录一样,我们没有自己搭建NAS服务器,所以直接模拟一个nas挂载目录。
使用mkdir 文件名
命令分别创建三层文件夹(/data/nas/images/
),然后使用rz
命令上传一张1.jpg
图片到images
下
如果对linux命令不太熟悉,请参考一文搞定Linux常见用法
[root@localhost sbin]# cd /data/nas/images/
[root@localhost images]# ll
总用量 216
-rw-r--r--. 1 root root 220250 4月 25 04:32 1.jpg
3、nginx.conf配置
这里需要配置两个地方,第一个是server_name
服务名称,我们给它自定义域名image.mytest.com
,第二个是location中的root
需要指向nas目录
,这样,当我们在浏览器中访问域名时会映射到nas目录中的资源文件。
server {
listen 80;
server_name image.mytest.com;
location / {
root /data/nas/images;
index index.html index.htm;
}
....
}
修改配置后重新加载配置文件 ./nginx -s reload
此时如果我们访问 http://image.mytest.com/1.jpg
地址,会发现无法正常现实图片,原因是我们还没有在本地做域名解析,所以浏览器并不知道这个域名是指向哪个IP地址(另外请先确保80端口已开防火墙
)。
4、域名本地解析
本地域名解析很简单,修改hosts文件即可,打开C:\Windows\System32\drivers\etc的hosts
文件,加上域名映射关系(192.168.48.128是应用服务器地址)
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
192.168.48.128 image.mytest.com
5、效果查看
访问http://image.mytest.com/1.jpg
地址,可见nas中的1.jpg资源正常加载出来了