人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

用http 的形式访问ftp服务器上的图片文件

1. 工具

  nginx 1.18.0和 ftpServe

  安装使用配置指路:https://www.cnblogs.com/YangMian/p/14913562.html

2. 图片上传到ftp成功后,在浏览器输入ftp://127.0.0.1 没有任何反应,反而弹出什么打开2345加速浏览器。

  原本想着这问题时捆绑软件的问题,但是当我配置 ftp://127.0.0.1/文件路径   或者 ftp://userName:password@127.0.0.1/文件路径  时  到html或者jsp的超链接中时发现,浏览器提示源文件提示被阻止!!!

  但是在我的电脑里或者cmd里都能正常访问。突然发现源项目配置的访问路径不是ftp开头的,而是http开头的url

3. 解决方案

  浏览器不能解析ftp,用http协议能访问到吗???

  查找方案中发现,nginx代理可以解决这个问题,历经两天终于解决(下面是nginx.conf的相关两个配置,都用到了nginx代理)

#这里是我自己配置ftp下载服务
    server {  
        listen       8818;
        server_name resouce;
        root  D:\ftp\ftpLibrary;  #访问文件根目录
        autoindex on;  #是否浏览文件下的列表
        location / {  #是否允许跨域
            add_header Access-Control-Allow-Origin *;
        }
        add_header Cache-Control "no-cache,must-revalidate";# 是否缓存
    }
    #代理ftp访问图片配置服务
    server {
        listen       8819;
        server_name localhost;
        location ~ \.(gif|jpg|jpeg|png|bmq|swf)$ {
            root D:/ftp/ftpLibrary/;
        }
    }

root 是定位ftp文件根路径,项目url后再跟具体的路径

 

 再次启动,发现图片出来了,url也显示是http连接(为什么能用http 来访问ftp上的图片:因为nginx代理是配置了location 那一句,当url以gif、jpg等结尾时,port满足8819  ip满足localhost(或者127.0.0.1)时就会流转到ftp文件的根目录)

4. 注意事项

  ftp服务器配置两个用户,一个匿名用户(因为代理时怎么加上用户名和密码是个问题,权限配置时设置只读)和一个插入用户(常规的配置,权限勾选满)

 

补充一下:成员的权限是由上图中的成员组来来设定的,默认的成员组为none,下拉有一个admin的成员组,成员组才是用来设定文件夹访问权限的

posted @ 2021-09-29 17:02  宇~  阅读(3429)  评论(0编辑  收藏  举报