本文共 2418 字,大约阅读时间需要 8 分钟。
在分布式架构中,通常会有多个tomcat服务器,上传的图片仅存在于其中一个tomcat中,访问时由集群的tomcat随机提供服务。当访问到图片所在的tomcat时,图片能正常显示;但若因偶然原因访问到没有图片的tomcat时,图片则无法显示。这种情况下,图片的可访问性存在不稳定性,需要一个专门的服务器来存储图片,常用的是nginx。
nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器,基于BSD-like协议发行。其优势在于占用内存少且并发能力强,尤其在高并发场景下表现优异。nginx在中国大陆的互联网企业中应用广泛,例如百度、京东、新浪、网易、腾讯、淘宝等。对于本文,只需了解nginx作为一个服务器,其功能类似于tomcat,但主要用于存储图片。
VSFTP(Very Secure FTP Daemon)是一个基于GPL的FTP服务器软件,具有安全、高速、稳定等特点。它用于在Linux系统中实现文件传输。在Windows环境中,通过连接Linux系统的IP、vsftp服务端口、用户名及密码,可方便地上传文件或下载文件。
将nginx和vsftp组合使用,如何实现图片服务器?从tomcat的默认访问路径可知,访问http://localhost:8080会显示tomcat欢迎页。同理,nginx的默认访问地址为http://IP:80或https://IP:443,可通过修改默认访问页面,将其指向图片存储路径。例如,将默认访问页面设置为/home/ftpuser/images,则访问http://IP:80/images/pic.jpg即可查看图片。
接下来将详细介绍nginx和vsftp的安装配置。
在Centos 7上安装必要软件包:
yum install gcc-c++yum install pcre pcre-develyum install zlib zlib-develyum install openssl openssl-devel
开启防火墙端口:
firewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --zone=public --add-port=443/tcp --permanentfirewall-cmd --zone=public --add-port=22/tcp --permanentfirewall-cmd --zone=public --add-port=21/tcp --permanentfirewall-cmd --zone=public --add-port=30000-30999/tcp --permanent
下载并安装:
wget -c https://nginx.org/download/nginx-1.10.1.tar.gztar -zxvf nginx-1.10.1.tar.gzcd nginx-1.10.1
配置编译参数并编译:
./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid \--lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module \--http-client-body-temp-path=/var/temp/nginx/client \--http-proxy-temp-path=/var/temp/nginx/proxy \--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \--http-scgi-temp-path=/var/temp/nginx/scgimakemake install
启动nginx:
cd /usr/local/nginx/sbin./nginx
如遇到启动错误,请参考解决方案。
yum -y install vsftpd
创建ftp用户及设置密码:
useradd ftpuserpasswd ftpuser
检查selinux状态并设置:
getsebool -a | grep ftpsetsebool -P ftpd_full_access onsetsebool -P ftp_home_dir on
编辑vsftpd配置文件:
vim /etc/vsftpd/vsftpd.conf
在文件末尾添加以下内容:
anonymous 2
保存退出后,启动vsftp并设置开机启动:
systemctl start vsftpdchkconfig vsftpd on
使用FileZilla连接到虚拟机IP,端口21,用户名密码访问。
安装完成后,访问图片可能仍报403错误,需检查ftpuser权限:
chmod -R 755 /home/ftpuser
此时,访问图片应成功。
搭建图片服务器的过程复杂且充满挑战,尤其在Centos 7的防火墙设置与Centos 6的不同处。通过不断查阅资料和解决问题,最终完成了这一搭建任务。希望这篇笔记能为广大技术工作者提供有价值的参考,共同进步!
转载地址:http://uqcfk.baihongyu.com/