web后端:Nginx+pure-ftpd搭建简易的文件共享

帮朋友在华为云服务器上搭建一个nginx+ftp,做个记录

运行环境 Runtime environment

1
2
3
操作系统 : Centos 8  && ubuntu 18.04LTS
python : 3.6.8
nginx : 1.16

背景

今天帮个朋友搭建个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
    3
    ubuntu@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
    14
    centos 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
    6
    centos 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

    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 8

    sudo 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.04

    sudo systemctl status nginx

    1
    2
    3
    4
    看到    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
2
3
4
5
6
7
8
9
10
11
12
13

server {
listen 1314;
server_name _;
root /usr/share/nginx/html;
location / {
root /home/upload_dir;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
charset utf-8;
}
}

重启nginx载入新配置文件

nginx -s reload

访问目录

打开浏览器,输入[你服务器的外网IP地址]:[你的端口]

Ojbk!

总结

核心思路是使用pure-ftpd管理文件,nginx location到该文件路径即可。

做完以后,感觉很简单。

文章写得多,主要是为了详细,我也不喜欢写长文,读着累。

根据自己的情况进行跳过。

×

也就放着玩的

扫码支持
扫码打赏,其实感觉也没人会给的。。

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 运行环境 Runtime environment
  • 背景
  • 安装pure-ftpd
  • 配置pure-ftpd
  • 安装nginx(如果已经安装过跳过此步)
  • 使用nginx(如果已经安装过跳过此步)
  • 配置Nginx
  • 访问目录
  • 总结
  • ,