使用vsftpd服务(FTP)和Nginx(http)搭建图片服务器
最近在重新学习淘淘商城项目,而在搭建图片服务器这部分内容,视频并没有讲解的很详细,搭建过程也是相当坎坷。为了避免自己再次入坑,也为了广大的后生着想,特地将过程记录下来,给大家做参考。废话不多说,马上进入正题。
1 背景
1.1 搭建环境
- 主机:Ubuntu 18.04(这个对搭建服务器的影响不是很大,可以忽略)
- 虚拟机:centos 7
- 虚拟机软件:virtualBox
- FTP测试软件:FileZilla
1.2 搭建步骤
- 给虚拟机配置静态IP,便于访问以及日后的集群
- vsftp服务环境配置
- nginx的安装及配置
2 虚拟机配置静态IP地址
2.1 虚拟机网络模式
网卡的网络模式有三种,这里选择“桥接网卡”模式。此模式需要配置IP,主机相当于一台交换机,而虚拟机相当于局域网中一台独立的电脑:既可以访问外网,也可以与主机相互访问。
2.2 更改虚拟机的配置文件
- 进入网卡的配置文件夹,并备份配置文件:
cd /etc/sysconfig/network-scripts
和cp ifcfg-eth0 ifcfg-eth0-cp
- 修改配置文件:vim ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
#此处需改为静态地址
BOOTPROTO="static"
DEFROUTE="yes"
#设置静态IP地址,需在同一个网段
IPADDR="192.168.1.110"
#设置至网掩码:与主机保持一致
NETMASK="255.255.255.0"
#网关:与主机IP地址一致
GETWAY="192.168.1.102"
NAME="eth0"
UUID="XXXXXXXXXXX"
DEVICE="eth0"
ONBOOT="yes"
- 重启网卡:
service network restart
查看虚拟机网卡IP是否与设置的静态IP一致,如一致则静态IP设置成功
至此,静态IP已配置完毕。无论怎么重启,静态IP都会生效。只要主机和虚拟机在同一个网段,那么都可以互相访问。
3 vsftp服务配置
3.1 常用的命令及配置路径
3.1.1 vsftpd服务的安装
- 安装:
yum -y install vsftpd
- 查看vsftpd服务状态:
systemctl status vsftd.service
- 启动vsftpd服务:
systemctl start vsftpd.service
3.1.2 端口设置
虽然虚拟机已经安装了vsftpd服务,但是主机仍然无法访问上传文件到虚拟机。原因是:21端口没有开启。
输入以下命令即可:
首先,需要开启iptables服务(以下代码包含了iptables的安装服务,如果/etc/sysconfig中已经有iptables文件,则可跳过此段)
#开启iptables服务
iptables -P OUTPUT ACCESS
systemtcl stop firewalld
yum install iptables-service
systemctl enable iptables
systemctl start iptables
service iptables save
修改配置文件
cd /etc/sysconfig/
#如附图修改
vi iptables
#修改后重启服务
service iptables restart
附录:配置文件iptables如下图所示,将22改为21,其余不变
3.1.3 修改Selinux
键入如下命名即可修改:
getsebool -a |grep ftp
setsebool -P allow-ftpd-full-access on
setsebool -P tftp-home-dir on
3.1.4 关闭匿名访问
vi /etc/vsftpd/vsftpd.conf
#将anonymous-enable改为NO
anonymous-enables=NO
#重启vsftpd服务
service vsftpd restart
3.1.5 开启被动模式
vi /etc/vsftpd/vsftpd.conf
#添加端口范围
pasv_min_port=30000
pasv_max_port=30999
#重启vsftpd服务
service vsftpd restart
3.1.6 开机自动启动
chkconfig vsftpd on
3.2 建立专用的用户
#useradd命令会自动生成/home/ftpuser
useradd ftpuser
#配置密码
passwd ftpuser
3.3 主机访问测试
利用FileZilla可以很方便的访问ftp服务,如下图:
4 Nginx服务安装及配置
4.1 Nginx服务安装
#配置rpm源
sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-7-0.el7.ngx.noarch.rpm
#yum安装
yum install nginx
#开启服务
systemctl enable nginx
#启动服务
systemctl start nginx
#重启服务
systemctl restart nginx
#重载服务
systemctl reload nginx
4.2 开启防火墙
#开启http和ftp服务
firewall-cmd --zone=public --permanet --add-service=http
firewall-cmd --zone=public --permanet --add-service=ftp
#重载防火墙
firewall-cmd --reload
#显示防火墙服务
sudo firewall-cmd --list-service
4.3 常见错误
4.3.1 有关404错误
- 访问权限不足
使用chmod 777 -R /home/ftpuser/www
更改权限 - nginx配置文件:nginx.conf
#将root nginx改为root root
root root;
- 更改nginx根目录:default.conf
cd /etc/nginx/con.f
#修改配置文件,如下图所示
vi default.conf
- 附图:更改location里面的root路径即可(alias路径也可以,自己琢磨)
4.3.2 有关403错误
多半由于selinux服务引起的,关闭即可解决。
修改配置文件 /etc/ selinux/config,将SELINUX=enforcing改为SELINUX=disabled