linux搭建FTP服务器并整合Nginx

操作系统:Centos7

1.1、服务器配置

# 关闭SELINUX,把SELINUX=enforcing改为SELINUX=disabled,reboot重启服务器生效
vim /etc/sysconfig/selinux
SELINUX=disabled

# 开放21端口
firewall-cmd --zone=public --add-port=21/tcp --permanent

# 开放ftp服务
firewall-cmd --add-service=ftp --permanent

# 重新加载防火墙
firewall-cmd --reload

# 查看21端口是否开放
firewall-cmd --zone=public --query-port=21/tcp

# 查看ftp服务是否开放
firewall-cmd --query-service=ftp

# 新建一个不能登录系统用户,只用来登录ftp服务。这里如果没设置用户目录,默认是在home下。
useradd ftpuser -s /sbin/nologin

# 设置密码
echo "foo" | passwd --stdin ftpuser
```
500 OOPS: vsftpd: refusing to run with writable root inside chroot() #从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报误。 #要修复这个错误,可以用命令chmod a-w /home/ftpuser 去除用户主目录的写权限,注意把目录替换成你自己的。
#或者你可以在vsftpd的配置文件中增加下列项: allow_writeable_chroot=YES ```
# 查看目录权限
ll -d /home/ftpuser/
drwx------. 2 ftpuser ftpuser 62 9月 19 14:04 /home/ftpuser/
# 去除用户主目录的写权限
chmod a
-w /home/ftpuser dr-x------. 2 ftpuser ftpuser 62 9月 19 14:04 /home/ftpuser/

1.2、安装vsftpd

yum -y install vsftpd

# vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:
# vsftpd.conf 为主要配置文件
# ftpusers 配置禁止访问FTP服务器的用户列表
# user_list 配置用户访问控制------这里的用户默认情况(即在/etc/vsftpd/vsftpd.conf中设置了userlist_deny=YES)下也不能访问FTP服务器 

1.3、配置vsftpd.conf

# 禁用匿名用户,YES改为NO 
anonymous_enable=NO

# 禁止切换根目录
chroot_local_user=YES

1.4、启动vsftpd

#
systemctl start vsftpd.service

#查看vsftpd状态
systemctl status vsftpd.service

1.5、安装ftp客户端

yum install -y ftp

1.6、登录ftp服务器(推荐,这种方式在出错的情况下可以看到错误信息的输出)

ftp 192.168.0.183

2.1、安装Nginx

linux下yum安装最新稳定版nginx

2.2、配置Nginx

修改nginx.conf

#user  nginx;
user ftpuser;

在conf.d下增加ftp_server.conf

server {
    listen       8080;
    server_name  localhost;

    #charset koi8-r;
    access_log  /var/log/nginx/ftp.access.log  main;

    location / {
        # 指定到ftp文件位置
        root   /home/ftpuser;
        index  index.html index.htm;
    }
}    
原文地址:https://www.cnblogs.com/xxoome/p/9670758.html