前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用Nginx和vsftpd搭建图片服务器

使用Nginx和vsftpd搭建图片服务器

作者头像
星哥玩云
发布于 2022-07-26 13:00:49
发布于 2022-07-26 13:00:49
5530
举报
文章被收录于专栏:开源部署开源部署

1、安装vsftpd组件

安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件。 [root@linuxidc ~]# yum -y install vsftpd

2、创建虚拟用户登录

2.1 创建文本格式的用户名、密码列表

首先需要建立一个文本格式的用户名/密码列表文件,奇数行为用户名,偶数行为上一行中用户名所对应的密码。 例如:添加两个用户jene、john,密码分别为abc123、abc456执行以下的操作:

[root@linuxidc ~]# vi /etc/vsftpd/juser.txt jene abc123 john abc456

2.2 生成数据库

db_load:安装 db4,db4-devel,db4-utils

# cd //etc/vsftpd  //切换到/etc/vsftpd的目录下 # yum -y install db4* # db_load -T -t hash -f juser.txt juser.db  //将刚创建的juser.list列表转换为juser.list.db

file juser.db  //查看转换后的文件类型

2.3 修改数据文件访问权限:

chmod 600 /etc/vsftpd/juser.db

2.4 修改pam配置:

vi /etc/pam.d/juser.pam //为虚拟用户创建PAM认证文件,文件名为juser.pam(见名之义) auth    required        pam_userdb.so  db=/etc/vsftpd/juser account required        pam_userdb.so  db=/etc/vsftpd/juser 注意:db=/etc/vsftpd/vsftpd_login 后面的.db必须去掉

2.5 创建虚拟账号对应的系统用户:

# useradd -d /home/ftpuser -s /sbin/nologin ftpuser      //添加用户ftpuser,指定到新建的家目录,将虚拟用户对应到这个系统账号上,这个账号无需设置密码及登录Shell # chmod 755 /home/ftpuser/        //调整权限以允许浏览目录

2.6 修改vsftpd配置文件

vsftpd端口是1335,访问目录为/opt/upload(即为图片路径),被动模式

vi /etc/vsftpd/vsftpd.conf anonymous_enable=no local_enable=YES write_enable=YES local_umask=022 connect_from_port_20=YES #ftp_data_port=1334 chroot_local_user=YES listen=YES listen_port=1335 #pam_service_name=vsftpd pam_service_name=juser.pam tcp_wrappers=YES

local_root=/opt/upload pasv_enable=yes pasv_min_port=31000 pasv_max_port=31999 guest_enable=YES guest_username=ftpuser user_config_dir=/opt/ftpuser_dir userlist_enable=YES

2.7 定义jene虚拟用户配置文件,允许jene用户可以上传

#vi /opt/ftpuser_dir/jene anon_upload_enable=YES anon_other_write_enable=YES anon_umask=062  (权限062是创建目录为715,文件为604)

2.8 定义john虚拟用户配置文件,允许john用户可以上传及创建目录

anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=062

# service vsftpd restart

3、配置nginx.conf,使其成为图片服务器

# vi /opt/nginx/conf/nginx.conf

user  nginx nginx; worker_processes  1;

pid        /opt/nginx/run/nginx/nginx.pid;

events {     worker_connections  1024; }

http {     include      mime.types;     default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                       '$status $body_bytes_sent "$http_referer" '                       '"$http_user_agent" "$http_x_forwarded_for"'                       '$upstream_addr $upstream_response_time $request_time ';     log_format log404 '$status [$time_local] $remote_addr $host$request_uri $sent_http_location';

    access_log  logs/nginx/access.log main;     access_log  logs/nginx/host.access.404.log  log404;

    sendfile        on;

    keepalive_timeout  65;

    server {         listen      8010;         server_name  localhost;         large_client_header_buffers 4 128k;         client_max_body_size 300m;         client_body_buffer_size 128k;         proxy_connect_timeout 600;         proxy_read_timeout 600;         proxy_send_timeout 600;         proxy_buffer_size 64k;         proxy_buffers  4 32k;         proxy_busy_buffers_size 64k;         proxy_temp_file_write_size 64k;

        location /nginxstatus{                 stub_status on;                 access_log on;                 auth_basic "nginxstatus";                 auth_basic_user_file htpasswd;         }

        location ~ .*\.(gif|jpg|jpeg|png)$ {             expires 24h;             root /opt/upload;             access_log /opt/nginx/logs/images.log;             proxy_store on;             proxy_store_access user:rw group:rw all:rw;             proxy_temp_path        /opt/upload;             proxy_redirect          off;             proxy_set_header        Host 192.168.8.15;             client_max_body_size    10m;             client_body_buffer_size 1280k;             proxy_connect_timeout  900;             proxy_send_timeout      900;             proxy_read_timeout      900;             proxy_buffer_size      40k;             proxy_buffers          40 320k;             proxy_busy_buffers_size 640k;             proxy_temp_file_write_size 640k;       }

        location / {             root  html;             index  index.html index.htm;         }

        error_page  500 502 503 504  /50x.html;         location = /50x.html {             root  html;         }

    }

5、图片路径权限

# ll /opt/ total 4 drwxr-xr-x. 3 root root 4096 Jan 31 13:08 upload

也可将upload目录设置属主为nginx用户 # chmod nginx /opt/upload # ll /opt/ total 4 drwxr-xr-x. 3 nginx root 4096 Jan 31 13:08 upload

upload目录下pthoimanges存放图片目录属主与属组都为虚拟用户映射的本地用户(ftpuser) #chmod -R ftpuser.ftpuser /opt/upload/pthoimanges # ll /opt/upload/ total 4 drwxr-xr-x. 6 ftpuser ftpuser 4096 Jan 31 13:09 pthoimanges

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CentOS 6.4 下安装vsftpd
本文介绍了在CentOS 6.4下安装vsftpd、配置虚拟用户登录FTP的过程。
星哥玩云
2022/06/28
7670
CentOS7安装和配置FTP
按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。
逍遥子大表哥
2021/12/17
1.2K0
虚拟用户的VSFTPD服务器
1,添加三个FTP虚拟用户devadm、sales、saleadm 2,设置用户访问及文件权限控制: 开放匿名访问,任何用户可以从/var/ftp/soft/目录下载资料 用户devadm可以对/var/ftp/soft/目录进行管理 用户sales可以从/var/market/目录下载资料 用户saleadm可以对/var/market/目录进行管理 所有上传的文件,均去除非属主位的写(w)权限 对服务器中没有明确授权的其他目录,均禁止以上用户访问 3,下载、上传流量及带宽控制: 最多允许150个并发用户连接,每IP并发连接数不超过5个 匿名用户及sales用户的下载带宽限制为100KB/秒 devadm、saleadm用户的下载、上传带宽限制为500KB/秒
三杯水Plus
2018/11/14
3.9K0
Nginx 搭建FTP图片服务器
1、http服务:可以使用nginx做静态资源服务器。也可以使用apache。推荐使用nginx,效率更高。
用户5760343
2022/05/24
8.4K0
Nginx 搭建FTP图片服务器
centos部署ftp服务_文件服务器搭建
vsftpd配置文件的默认路径是 /etc/vsftpd/vsftpd.conf。
全栈程序员站长
2022/10/01
1.7K0
谁再说不会搭建vsftpd,就把这个脚本给他扔过去!——CentOS7下一键脚本搭建虚拟用户模式的vsftpd服务器
1、vsftpd本地用户模式 本地用户模式是通过Linux系统本地的账户密码信息进行认证的模式,而且配置起来相对简单。但是如果被黑客破解了账户的信息,就可以畅通无阻地登录FTP服务器,从而完全控制整台服务器。
yuanfan2012
2022/12/06
1.2K0
谁再说不会搭建vsftpd,就把这个脚本给他扔过去!——CentOS7下一键脚本搭建虚拟用户模式的vsftpd服务器
Linux安装FTP
2.FTP连接刚刚装了FTP服务的另一台服务器(下面有服务端教程)。(ip自己改成自己的)
shaun
2023/10/26
1.8K0
Linux安装FTP
FTP服务搭建和配置
一、FTP介绍 我们之前传输文件所用的是rzsz命令,可以简单明了的就把我们所需的文件下载或者上传。但是有个缺陷,不可以上传或者下载大体积的文件。FTP就可以解决这个问题! 1.1 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。 FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
老七Linux
2018/05/09
1.8K0
Linux安装vsftpd及配置详解
安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件。 [root@linuxidc ~]# yum -y install vsftpd
星哥玩云
2022/07/27
8.4K0
Linux安装vsftpd及配置详解
15.2/15.3 使用vsftpd搭建ftp
使用vsftpd搭建ftp目录概要 centos上自带vsftpd yum install -y vsftpd useradd -s /sbin/nologin virftp vim /etc/vsftpd/vsftpd_login //内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行 testuser1 aminglinux chmod 600 /etc/vsftpd/vsftpd_login db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/
运维小白
2018/02/06
1.9K0
15.2/15.3 使用vsftpd搭建ftp
ubuntu 自动部署 vsftpd 服务,shell 脚本自动新增 子用户登陆
#!/bin/bash# ubuntu vsftpd installuserFile="/datadisk/eisc/ftp"# 配置用户的家目录ftp_install(){FtpPackageList=( vsftpd db-util )for i in ${FtpPackageList[*]}do FtpPackage=`sudo apt list --installed | grep $i ` if [ ${#FtpPackage} -lt 10 ] then ./ap
eisc
2022/11/11
8290
vsftpd简介及搭建配置
FTP(文件传输协议)全称是:Very Secure FTP Server。  Vsftpd是linux类操作系统上运行的ftp服务器软件。
星哥玩云
2022/07/14
5.4K0
FTP文件服务器
FTP (File transfer protocol) 是TCP/IP 协议组中的协议之一。他最主要的功能是在服务器与客户端之间进行文件的传输。FTP就是实现两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载 (download)”文件。将文件从自己计算机中拷贝至远程计算机上,则称之为“上传(upload)”文件。这个古老的协议使用的是明码传输方式,且过去有相当多的安全危机历史。为了更安全的使用 FTP 协议,我们主要介绍较为安全但功能较少的 vsftpd(very secure File transfer protocol ) 这个软件。FTP是一个C/S类型的软件,FTP监听TCP端口号为21,数据端口为20。
星哥玩云
2022/09/15
22.3K0
图片服务器搭建
1. 分析需求图片服务器的原因 在网站开发过程中使用tomcat集群时,可能存在在一个tomcat服务器中上传,在另外一个tomcat中进行访问,这样就会导致资源访问失败,而很好的解决这一问题的方法,就是搭建一个专门的服务器来实现文件的存储与读。 2. 搭建环境 Linux CentosOS6.3 Nginx Vsftbd FileZilla 3.安装http服务 3.1.安装Linux虚拟机 这个过程就不作详细讲解,翻阅网上资料,值得注意是在安装过程中,容易出现连不上,这就需要将网卡配置进行修改    
cfs
2018/03/08
6.7K0
linux centos 搭建 ftp 创建虚拟用户 并使用 ftp 命令上传和下载文件
if [ ! -e $repo ]; then # -e 判断文件存在;参考:Shell if 条件判断文件或目录
eisc
2021/02/19
8.3K0
linux centos 搭建 ftp 创建虚拟用户 并使用 ftp 命令上传和下载文件
CentOS 6.5基于AD域账号联动认证的vsftpd结合SSL加密服务器配置
二、实施步骤: 1、系统基础设置 计算机名、IP地址、网关、子网掩码、DNS设置 2、安装所需要的软件 Yum install httpd -y Yum install vsftpd* -y Yum install pam* -y Yum install mod_ssl* -y
星哥玩云
2022/06/30
9660
关于FTP搭建问题
1. 匿名服务器的连接(独立的服务器) 在/etc/vsftpd.conf(或在/etc/vsftpd/vsftpd.conf)配置文件中添加如下几项: Anonymous_enable=yes (允许匿名登陆) Dirmessage_enable=yes (切换目录时,显示目录下.message的内容) Local_umask=022 (FTP上本地的文件权限,默认是077) Connect_form_port_20=yes (启用FTP数据端口的数据连接)* Xferlog_enable=yes (激活上传和下载的日志) Xferlog_std_format=yes (使用标准的日志格式) Ftpd_banner=XXXXX (欢迎信息) Pam_service_name=vsftpd (验证方式)* Listen=yes (独立的VSFTPD服务器)* 注释:以上配置只能连接FTP服务器,不能上传和下载 注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项
云知识Online
2018/05/03
2.5K0
学习笔记0525----NFS文件共享和FTP服务器
用两台机器做实验,一台作为服务端(linux-001 192.168.141.128),一台作为客户端(linux-02 192.168.141.129)
嘻哈记
2020/11/24
3.2K0
centos7下搭建ftp服务器
1、500 OOPS: unrecognised variable in config file: xxxx
dogfei
2020/07/31
2.9K0
相关推荐
CentOS 6.4 下安装vsftpd
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文