背景:
工作中做了一个维护前台图片自动轮播的功能。后台维护图片列表信息,前台自动更新轮播。上传图片时,图片成功上传到服务器,但用img标签预览时怎样都显示不出来,经查发现ftp的地址不能直接用http格式访问。
<img id="image" src="http://172.16.15.21:8090/img/9ec5aed4-0f5d-42e3-8d9a-e00f7aa32947.jpg">
网上查了各种资料,说是直接绑定ftp地址,如 ftp://账户:密码@主机地址:端口号/图片名称。但这种方式容易暴露ftp信息,且目前越来越多的浏览器开始禁止使用这种方式了。
跟随 Chrome,Firefox 将阻止加载大多数 FTP 资源 - OSCHINA - 中文开源技术交流社区
后查可以通过搭建ftp+nginx实现图片的预览访问。
服务器的搭建:
window下ftp服务器的搭建不细讲了,本文介绍nginx服务器的搭建。
nginx服务器下载地址:nginx: download
选择红框中的版本。
下载后,将压缩包直接解压到ftp服务器配置目录的根目录下。
nginx cmd命令:
start nginx //启动nginx
./nginx -s stop // 停止nginx
./nginx -s reload // 重新加载配置文件
./nginx -s quit // 退出nginx
./nginx -t //检查配置文件是否正确
./nginx -v //查看nginx版本号
1、配置端口号和访问路径
conf目录下的 nginx.conf 配置文件
配置文件参考:Nginx配置详解 - 张龙豪 - 博客园
把端口改为8090,启动nginx 回到nginx文件夹根目录,按住shift键点击鼠标右键,选择右键菜单中的在此处打开命令窗口,输入start nginx 命令。
成功访问:
2、添加图片服务访问配置
当要进行负载均衡和图片服务器同时处理时,可以将location单独拎出来配置,如下图:
重新加载配置文件。在E:\ftp文件下有个img目录,里面存放了图片,因此输入如下网址,即可访问成功。
到这里就实现了基本的ftp+nginx服务器的搭建。
关于图片服务器的架构介绍:大型网站图片服务器架构的演进_丁码农-CSDN博客
参考文章:nginx+ftp搭建图片服务器(Windows Server服务器环境下) - cczheng - 博客园
nginx学习:
推荐一个新入门学习很好的博客:
Nginx(一)------简介与安装 - YSOcean - 博客园
Nginx(二)------nginx.conf 配置文件 - YSOcean - 博客园
Nginx(三)------nginx 反向代理 - YSOcean - 博客园
Nginx(四)------nginx 负载均衡 - YSOcean - 博客园
https://www.jb51.net/article/140419.htm
四篇文章将nginx的反向代理、负载均衡讲的很清楚,很适合新手学习
补充:
nginx配置文件更改后,很可能会出现加载无效的情况,大概率是进程问题。我在linux下和window下都遇到过这样的问题。
linux解决方案: 执行 killall nginx 命令彻底杀死所有nginx进程,然后启动再nginx,如果无效,就用ps -ef | grep nginx命令查找出所有nginx的进程,再kill 掉主进程即可
windows解决方案:执行 taskkill /fi “imagename eq nginx.EXE” /f 命令彻底杀死所有nginx进程,然后启动再nginx