大家好,关于nginx图片服务器很多朋友都还不太明白,今天小编就来为大家分享关于图片服务器的搭建01的知识,希望对各位有所帮助!
一、通过nginx访问服务器图片当图片更换后浏览器没有更换如何解
通过nginx访问服务器图片当图片更换后浏览器没有更换正常。网页浏览器,常被简称为浏览器,是一种用于检索并展示万维网信息资源的应用程序。这些信息资源可为网页、图片、影音或其他内容,它们由统一资源标志符标志,信息资源中的超可使用户方便地浏览相关信息。
二、图片服务器的搭建01
nginx+vsftp搭建图片服务器
前言:
在分布式架构中,往往会有多个tomcat,然后你上传的图片只是在其中的某一个tomcat,你访问时是由集群的tomcat随机提供服务。当你访问的tomcat是有图片的那个时,图片能正常显示,如果恰巧是那个没有图片的tomcat时,图片就不能正常显示。这就完成了访问同一个图片,可能你刷新一次可以访问,再刷新一次图片就访问不到了。这时,我们就需要一个服务器用来专门存储图片,一般我们都用nginx。
1、nginx+vsftp:
上面分别介绍了nginx和vsftp,那么这两个东西怎么组合起来用呢?怎么实现这个图片服务器呢?我们知道,tomcat安装好启动后,在浏览器输入localhost:8080,就会出现tomcat的欢迎页,nginx也一样。比如linux的ip是192.168.50.122,那么启动nginx后,在浏览器访问这个也会出现nginx的欢迎页,其实是因为它有个默认的访问页面,完整的应该是192.168.50.122/index.html,那么我们就可以根据这个,把它默认的访问页面改成我们上传的图片的保存路径,比如上传了一张pic.jpg图片到linux的/home/ftpuser/images中,如果我们把默认访问页面改成/home/ftpuser,那么在浏览器中输入192.168.50.122/images/pic.jpg,就可以访问到这张图片了。下面就来介绍nginx、vsftp的安装以及配置。
<meta charset="utf-8">
1、安装:
2、添加ftp用户:
3、给ftp用户添加密码:
输入两次密码后修改密码。
4、修改selinux:
①查看状态:
执行这个命令可以看到
这两个都off,执行如下命令设置为on:
再次执行 getsebool-a| grep ftp看到那两个状态是on就行了。
5、关闭匿名访问:
执行
命令:
还要在vsftp.conf文件最下面添加以下内容:
然后保存退出即可。
6、设置开机启动:
7、测试:
打开filezilla工具,输入虚拟机的ip,21端口,用户名和密码,快速连接,连接vsftp服务:
如图所示则连接成功。
<meta charset="utf-8">
按照以上步骤安装好nginx和vsftp后,还是不能访问上传的图片的,需要进行如下配置:
执行
命令,打开nginx的配置文件:
按道理这样就可以了,但是我访问却报错:
403 forbidden,最后发现是因为ftpuser文件夹没有可读权限,执行如下命令:
再次访问即可成功!
至此图片服务器搭建完成!至于在J*a中如何使用这个图片服务器,请参考 J*a实现把图片上传到图片服务器。
在搭建的过程中,遇到很多坑,因为我参考的教程是centos 6,防火墙是iptables,而centos 7是firewall,
三、nginx负载均衡时上传的图片怎么处理
局域网内可以考虑 rsync+ inotify-tools
inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决了同步数据的实时*问题。
局域网内多台服务器时可以配置Nginx把上传等写操作固定到其中一台PHP-FPM服务器,然后用inotify+rsync同步到其它机器.
比如上传操作定向到服务器192.168.1.10进行处理:
location ^~/upload.php{
include fastcgi_params;
fastcgi_pass 192.168.1.10:9000;
fastcgi_param SCRIPT_FILENAME/srv/$fastcgi_script_name;
}
在服务器192.168.1.10上用inotify+rsync同步文件到其他服务器.除上传外,删除、更改、移动等写操作也要定向到192.168.1.10这台服务器进行处理。
四、Nginx的功能与特*
Nginx在过去的10年里,作为Web服务器行业里的新生代迅速崛起。Nginx由俄罗斯工程师Igor Sysoev编写,2004年10月4日发布了第一个公众版本:1.0.1。Apache一直占据Web服务器行业的第一,但自2008年开始,它的市场份额在潜移默化的转移到Nginx身上。直至今日,据Netcraft的统计显示,全世界排名前100万的网站中有超过27%的网站在使用Nginx作为Web服务器。Nginx迅速在一向稳定的Web服务器行业崛起并站稳跟脚.
1、静态HTTP服务器
Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。
2、反向代理服务器
客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。
3、负载均衡
当网站访问量非常大,将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。Nginx可以通过反向代理来实现负载均衡,并能使用3种自带策略及2种第三方策略。
(1)RR(默认,每个请求按时间顺序逐一分配到不同的后端服务器)
(2)权重(指定轮询几率,weight和访问比率成正比,用于后端服务器*能不均的情况)
(3)ip-hash(以上配置会将请求轮询分配到应用服务器,也就是一个客户端的多次请求,有可能会由多台不同的服务器处理(若存在登录session时则需要重复登录)。ip-hash根据客户端ip的hash值将请求分配给固定的某一个服务器处理)
(4)fair(第三方按后端服务器的响应时间来分配请求,响应时间短的优先分配)
(5)url_hash(第三方按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法)
4、虚拟主机
有的网站访问量大,需要负载均衡。有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。例如将和两个网站部署在同一台服务器上,两个域名解析到同一个IP,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。
在服务器8080和8081分别开了一个应用,客户端通过不同的域名访问,根据server_name可以反向代理到对应的应用服务器。虚拟主机的原理是通过HTTP请求头中的Host是否匹配server_name来实现的,另外,server_name配置还可以过滤有人恶意将某些域名指向你的主机服务器。
1、IO多路复用epoll
2、轻量级
3、CPU亲和(affinity)
4、sendfile
五、ftp+nginx 搭建图片服务器出现 403 forbidden的解决方法
当使用ftp上传图片后,尝试通过nginx访问却遭遇403 forbidden的错误。这个错误意味着服务器响应正常,但访问权限存在问题。问题出在图片文件夹的权限设置上,例如/home/ftpuser目录,它默认只允许root和ftpuser用户访问。
针对这个问题,有两种解决策略:
首先,你可以调整相关文件夹(例如/iamges)的权限,使其对所有用户开放。这可以通过更改文件夹权限设置实现,确保其他用户也可以访问图片。
其次,另一种方法是修改nginx的运行用户。在nginx的配置文件nginx.conf中,通常有注释行#user nobody;你可以取消注释并将其改为user ftpuser;。这样可以使nginx以ftpuser用户身份运行,从而获得必要的文件访问权限。
完成这些修改后,记得重启nginx服务器并重新加载配置,以应用更改。这样,你应该就能顺利地通过nginx访问上传的图片,而不会收到403 forbidden的错误提示了。