¶一、nginx
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。以上是百度百科的介绍,我们目前只需要知道nginx是一个服务器就行了,类似于tomcat的服务器,只不过我们把它用来保存图片。
¶二、vsftp
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它有安全、高速、稳定等特点。我们暂且这样理解:vsftp就是用来传输文件的一个服务,在linux系统中开启vsftp服务,然后在windows中就可以通过linux系统的ip、vsftp服务的端口、vsftp的用户名及密码连接vsftp服务,然后就可以方便的把windows中东西上传到linux中,也可以把linux中的东西下载到windows中。
¶三、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的安装以及配置。
¶四、安装nginx
¶1.准备活动
1 | #下载 |
¶2. 安装编译工具及依赖库文件
1 | yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel |
¶3.编译安装
1 | 进入解压好的源码目录 |
¶4.启动
1 | /usr/local/nginx/sbin/nginx |
查看是否启动命令: ps aux | grep nginx
¶5.停止
1 | /usr/local/nginx/sbin/nginx -s stop |
¶6 动态加载
1 | /usr/local/nginx/sbin/nginx -s reload |
-
区别:
nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
nginx -s reload:动态加载,当配置文件nginx.conf有变化时执行该命令动态加载。
¶7 测试配置文件nginx.conf正确性
1 | /usr/local/nginx/sbin/nginx -t |
¶8.其他常用命令
1 | 查看编译加载的模块 |
¶五、安装vsftp
¶1. 安装
1 | yum -y install vsftpd |
¶2. 关闭SELinux
- 命令行设置selinux
1 | setenforce 0 # 设置SELinux 成为permissive模式 (临时关闭SELinux) |
- 或者修改selinux配置文件(永久)
1 | vi /etc/selinux/config |
- 或者设置SELinux
1 | getsebool -a | grep ftp |
¶3. 防火墙设置
关闭防火墙,如果你不愿意关闭防火墙,需要防火墙添加FTP服务。
1 | firewall-cmd --permanent --zone=public --add-service=ftp |
¶4. 设置开机启动
1 | [root@localhost ~]# chkconfig vsftpd on |
¶5. 配合vsftp
1 | vim /etc/vsftpd/vsftpd.conf |
1 | Example config file /etc/vsftpd/vsftpd.conf |
¶6. 重启vsftpd
1 | systemctl restart vsftpd.service |
¶7. 添加ftp用户
1 | useradd -m -d /home/ftpuser/ ftpuser |
如果不让ftpuser
登陆ssh
,但是可以登录ftp
可以选择下面的两条命令操作
1 | 禁止用户ssh登录 |
¶8. 给ftp用户添加密码
1 | passwd ftpuser |
输入两次密码后修改密码。
¶9. 设置访问权限
1 | chmod -R 755 /home/ftpuser |
¶10. 登录vsftp测试
下载客户端工具,比如FTPRush
安装好ftp客户端后,连接服务器过程如图:
此时ftpuser
用户访问到的根目录其实是服务器的/home/ftpuser
目录。可在这个目录里实现简单的文件操作。
¶六、整合nginx和vsftp
其实就是将ftpuser用户的主目录定义为nginx的web根目录,如此就能实现基于http资源的图片系统。
1 | server { |
nginx加载配置文件
1 | /usr/local/nginx/sbin/nginx -s reload |
访问测试
通过ftp客户端工具上传好图片后,比如先通过ftp客户端创建一个images目录,然后在目录里上传图片90c8013a-2bc4-491c-b74e-d0505b215dd6_logo.jpg
。
可通过访问地址访问到图片。
http://101.132.45.132/images/90c8013a-2bc4-491c-b74e-d0505b215dd6_logo.jpg