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
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有