vsftpd安裝配置以及踩坑解決辦法,Centos7
nginx已經配置成功了,但是使用http始終沒辦法訪問到圖片,那么你來對地方了(在文章末尾是原因)
配置nginx教程:http://blog.csdn.net/xianzhixianzhixian/article/details/78891657
進入正題,安裝配置vsftpd開始
1、安裝vsftpd:安裝完成之后會有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件
# yum -y install vsftpd
2、添加ftp用戶:一個用戶建完,可以用這個登錄;記得用普通登錄不要用匿名了,登錄后默認的路徑為 /home/ftpuser.
# useradd ftpuser
3、設置ftpuser的密碼
# passwd ftpuser
4、為用戶分配主目錄
用以下命令創建,但是該目錄不能上傳文件
mkdir -p /home/ftp/pub
創建歡迎文件
echo "Welcome to use FTP service." > /home/ftp/welcome.txt
設置訪問權限
chmod a-w /home/ftp && chmod 777 -R /home/ftp/pub
設置為用戶主目錄
usermod -d /home/ftp ftpuser
4、iptables開啟端口21:ftp默認的端口為21,而centos默認是沒有開啟的,所以要修改iptables文件
修改完畢之后按下esc,然后輸入 :wq 回車,重啟服務
# vim /etc/sysconfig/iptables
# service iptables restart
如圖:

5、修改 selinux:外網是可以訪問上去了,可是發現沒法返回目錄(使用ftp的主動模式,被動模式還是無法訪問)也上傳不了,因為selinux作怪了
執行以下命令查看狀態:
# getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
執行上面命令,再返回的結果看到兩行都是off,代表,沒有開啟外網的訪問
# setsebool -P allow_ftpd_full_access on
# setsebool -P ftp_home_dir on
6、關閉匿名訪問:將anonymous_enable=YES改為anonymous_enable=NO
修改完畢之后按下esc,然后輸入 :wq 回車,重啟服務
# vim /etc/vsftpd/vsftpd.conf
# service vsftpd restart
7、 開啟被動模式
# vim /etc/vsftpd/vsftpd.conf
在文件末尾加上
pasv_min_port=30000
pasv_max_port=30999
表示端口范圍為30000~30999,這個可以隨意改,改完重啟一下vsftpd
# service vsftpd restart
由於指定這段端口范圍,iptables也要相應的開啟這個范圍
# vim /etc/sysconfig/iptables

修改完畢后重啟iptables
# service iptables restart
8、修改nginx配置文件,不修改的話不能用http前綴訪問到圖片
在這里需要注意兩點
a、/home/ftpuser的所有者為ftpuser,如果不是如圖所是的話,用chown和chgrp改為ftpuser;權限文件擁有者為7,用戶組和其他用戶要有讀權限

b、最重要的一步:nginx文件的配置,我的圖片是放在/home/ftpuser/images/,所以我在nginx中的配置如圖;這樣配置了之后應該就可以用http前綴訪問圖片了
# vim /usr/local/nginx/conf/nginx.conf

重新加載服務
# cd /usr/local/nginx/sbin
# ./nginx -s reload
