Web后端:Nginx+pure-ftpd搭建简易的文件共享
帮朋友在华为云服务器上搭建一个nginx+ftp,做个记录
运行环境 Runtime environment
1 | 操作系统 : Centos 8 && ubuntu 18.04LTS |
背景
今天帮个朋友搭建个nginx + pure-ftpd简易的文件分享。
因为这家伙,要用来搭建图床的cdn加速,也可以说是做存储吧。
嘛,具体情况不知道他怎么弄。反正我就先把这个ftp弄好就成,死懒鬼。
安装pure-ftpd
Centos 8 :
默认的 yum 源没有提供 pure-ftpd,
需要先安装 epel 扩展源,
如果装过了,跳过这条命令yum install epel-release
然后使用 yum 命令安装Pure-ftpd:
yum install pure-ftpd
ubuntu 18.04Lts
更新apt
sudo apt-get update
装Pure-ftpd:
sudo apt-get install pure-ftpd -y
源包安装太low,Pass.
配置pure-ftpd
启动pure-ftpd
pure-ftpd /etc/pure-ftpd/pure-ftpd.conf
查看进程是否启动成功
ps -aux | grep pure
1
2
3ubuntu@VM-0-11-ubuntu:/etc/nginx$ ps -aux | grep pure
root 3086 0.0 0.0 29548 428 ? Ss 14:38 0:00 pure-ftpd (SERVER)
ubuntu 3444 0.0 0.0 13772 1076 pts/0 S+ 14:51 0:00 grep --color=auto pure创建用户
sudo useradd ftp-user
创建用户所属组
sudo groupadd ftp-group
sudo usermod -a -G ftp-group ftp-user
sudo id ftp-user
1
2
3
4
5
6
7
8
9
10
11
12
13
14centos 8:
[root@localhost ~]# sudo useradd ftp-user
[root@localhost ~]# sudo groupadd ftp-group
[root@localhost ~]# sudo usermod -a -G ftp-group ftp-user
[root@localhost ~]# sudo id ftp-user
uid=1008(ftp-user) gid=1009(ftp-user) 组=1009(ftp-user),1010(ftp-group)
ubuntu 18.04LTS:
ubuntu@VM-0-11-ubuntu:/etc/nginx$ sudo useradd ftp-user
ubuntu@VM-0-11-ubuntu:/etc/nginx$ sudo groupadd ftp-group
ubuntu@VM-0-11-ubuntu:/etc/nginx$ sudo usermod -a -G ftp-group ftp-user
ubuntu@VM-0-11-ubuntu:/etc/nginx$ sudo id ftp-user
uid=1000(ftp-user) gid=1000(ftp-user) groups=1000(ftp-user),1001(ftp-group)创建一个用来存储ftp文件的目录
sudo mkdir /home/upload_dir
cd /home/upload_dir
pwd
1
2
3
4
5
6centos 8 和 ubuntu18.04 在这里的提示都差不多,不分别贴出了
ubuntu@VM-0-11-ubuntu:/home$ sudo mkdir /home/upload_dir
ubuntu@VM-0-11-ubuntu:/home$ cd /home/upload_dir/
ubuntu@VM-0-11-ubuntu:/home/upload_dir$ pwd
/home/upload_dir创建目录并得到路径
修改用户所属组
将之前路径写上sudo chown -R ftp-user:ftp-group /home/upload_dir/
创建ftp用户,注意ftp用户是虚拟用户,我设置的用户是RaXianch(自己定!),密码 自己定!
sudo pure-pw useradd RaXianch -u ftp-user -d /home/upload_dir/
1
2
3
4
5
6
ubuntu@VM-0-11-ubuntu:/home/upload_dir$ sudo chown -R ftp-user:ftp-group /home/upload_dir/
ubuntu@VM-0-11-ubuntu:/home/upload_dir$ sudo pure-pw useradd RaXianch -u ftp-user -d /home/upload_dir/
Password:
Enter it again:部分说明:
1
2
3
4
5其中-u选项是将虚拟用户RaXianch与系统用户ftp-user关联在一起,
即使用RaXianch账号登录FTP后,
会以ftp-user的身份来读取和下载文件,
-d选项为RaXianch账户的家目录,
这样可以是RaXianch只能访问/root/hbk/upload_dir创建用户信息数据库文件
sudo pure-pw mkdb
list显示用户列表
sudo pure-pw list
删除账号
pure-pw userdel RaXianch(改成你创的名字)
至此,purte-ftpd 配置完成,如果要自定义一些设置,自行去了解和修改/etc/pure-ftpd/pure-ftpd.conf
安装nginx(如果已经安装过跳过此步)
Centos 8:
没安装过 EPEL,需要运行这个命令。一般来讲都有的,所以看情况略过此条命令。sudo yum install epel-release
安装nginx
sudo yum install nginx
Ubuntu 18.04:
更新apt列表sudo apt-get update
安装nginx
apt-get install nginx
使用nginx(如果已经安装过跳过此步)
设置开机启动
Centos 8sudo systemctl status nginx
Ubuntu18.04 ubuntu似乎装上去就能自动重启了,如果没有自动重启执行以下操作
sudo systemctl enable nginx
1
2
3
4
5
6出现类似以下提示:
ubuntu@VM-0-11-ubuntu:~$ sudo systemctl enable nginx
Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nginx使用一下命令即可
sudo /lib/systemd/systemd-sysv-install enable nginx
检查Nginx状态
Centos 8 和 Ubuntu18.04sudo systemctl status nginx
1
2
3
4
5看到 active (running) 就说明跑成功了
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-05-11 14:08:56 CST; 1min 2s ago启动(如果上一步确定已经启动,跳过此步)
sudo systemctl start nginx
or
使用whereis查出nginx位置,然后使用绝对路径启动
whereis nginx
1
2[root@ecs-kc1-large-2-linux-20200507120604 ~]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz运行这个命令即可,
但是 注意! 你的服务器上安装nginx的路径跟我不一定相同,根据你自己的来。sudo /usr/sbin/nginx
配置Nginx
找到nginx目录下,默认安装目录centos 8 和 ubuntu18.04 都为 /etc/nginx/
cd /etc/nginx/conf.d
vim pure-ftpd.conf
示例中使用的端口是1314,你可以根据自己修改,
但是如果服务器存在防火墙,记得放通对应的端口,
输入如下配置信息:
1 |
|
重启nginx载入新配置文件
nginx -s reload
访问目录
打开浏览器,输入[你服务器的外网IP地址]:[你的端口]
Ojbk!
总结
核心思路是使用pure-ftpd管理文件,nginx location到该文件路径即可。
做完以后,感觉很简单。
文章写得多,主要是为了详细,我也不喜欢写长文,读着累。
根据自己的情况进行跳过。