用ftp:ip的方式在浏览器中输入只能是下载模式,要想http方式浏览图片,需要配置nginx。
前提是在Linux环境中已经搭建好了nginx和FTP服务器,且用 ftp:ip方式能够访问到路径
- 打开Linux中nginx的配置文件 vim nginx.conf
- 在server模块中配置你想要监听的端口,如果不想域名加端口的方式来访问图片,配置在80端口或者443端口如果想要以https的方式访问图片就需要配置在443端口了,这里先来看下80端口的配置
server {
#侦听80端口
listen 80;
#定义使用服务名 一般和域名相同 多个域名用空格分隔,演示用的伪域名
server_name www.ftptest.com ftptest.com;
#编码
charset UTF-8;
#本虚拟主机访问日志
#access_log localhost;
#URL映射
location /{
root /var/ftp/test; #html访问路径
autoindex on;
}
}
4.配置完成以后重启nginx,然后用过http://www.ftptest.com就可以访问到Linux服务器中/var/ftp/test/路径下的资源了,点击图片会在浏览器显示图片。如果有的打不开,需要查看一下nginx.conf中的user 是否是nobody,如果是,则修改为user ftp服务使用者;ftp服务使用者就是test文件夹的拥有者,我设置ftp服务器的访问模式是本地用户模式。
想要https方式形式来访问ftp图片
- 确保你的域名已经做了ssl认证并且配置在了nginx中,免费ssl认证参考,nginx配置ssl认证证书。
- 打开nginx 配置文件
server {
listen 443;
listen [::]:443 ssl ipv6only=on;
#配置Linux 服务器ip或者域名
server_name www.ftptest.com;
ssl on;
ssl_certificate /etc/nginx/cert/4049012_wwgstudy.icu.pem; #crt路径
ssl_certificate_key /etc/nginx/cert/4049012_wwgstudy.icu.key; #key路径
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #修改protocols。
ssl_prefer_server_ciphers on;
#禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击
#server_tokens off;
#如果是全站 HTTPS 并且不考虑 HTTP 的话,
#可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问
#fastcgi_param HTTPS on;
#fastcgi_param HTTP_SCHEME https;
#这个location设置和ftp没关系
location / {
proxy_pass http://127.0.0.1:9000;
}
#配置url路径https访问时应是https://www.ftptest.com/test/
location /test/ {
root /var/ftp/;
index ftp;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
charset utf-8,gbk;
}
}
- 上面的htpps://www.ftptest.com/test/访问的是Linux服务器中的/var/ftp/test/文件夹下的。
location /test/{
root /var/ftp/;
}
location 跟的/test/也接入到Linux服务器中的路径中了。所以访问的是Linux服务器中的/var/ftp/test/文件下的资源了。