nginx+vsftpd搭建圖片伺服器
1.使用yum安裝vsftpd
yum -y install vsftpd
2.新增一個ftp使用者,並設定密碼,輸入兩次一樣的密碼
useradd ftpuser
passwd ftpuser
使用該使用者登入後,預設的路徑為 /home/ftpuser
3.防火牆開啟21埠,ftp的預設埠是21
vim /etc/sysconfig/iptables
新增一行
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
重啟防火牆
service iptables restart
4.修改selinux
查詢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
allow_ftpd_anon_write
:關閉這個布林變數會阻止 vsftpd 讀取 public_content_rw_t 型別的檔案和目錄。如果允許使用者通過 FTP 上傳檔案。必須開放這個布林變數。allow_ftpd_full_access:當開放這個布林變數時只有 Linux(DAC)的許可權來控制訪問,通過驗證的使用者可以讀取和寫入標記為 public_content_t 或 public_content_rw_t 型別的檔案。allow_ftpd_use_cif:當開放這個布林變數時 vsftpd 允許 cifs_t 型別的檔案和目錄,因此這個布林變數啟用,可以讓你的 FTP 伺服器可以使用 Samba 檔案系統。allow_ftpd_use_nfs vsftpd:的當開放這個布林變數時 vsftpd 允許 nfs_t 型別的檔案和目錄,因此這個布林變數啟用,可以讓你的 FTP 伺服器可以使用 NFS 檔案系統。ftp_home_dir:當開放這個布林變數時認證使用者可以讀寫自己的主目錄中的檔案。ftpd_connect_db:當開放這個布林變數時允許 vsftpd 連線資料庫。httpd_enable_ftp_server:當開放這個布林變數時容許的 httpd 作為 FTP 伺服器,並且監聽 FTP 埠。tftp_anon_write:當開放這個布林變數時允許 TFTP 訪問一個公共的目錄。
如果要外網訪問,需要把allow_ftpd_full_access和ftp_home_dir變成on
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
或者
cd var/ftp
setsebool allow_ftpd_full_access 1
setsebool ftp_home_dir 1
啟動的時間比較久
然後再使用 getsebool -a | grep ftp命令檢視是否變成on
5.ftp關閉匿名訪問,這樣就需要用賬號密碼才能登陸,改為NO
vim /etc/vsftpd/vsftpd.conf
6.重啟ftp服務
service vsftpd restart
7.開啟被動模式
vim /etc/vsftpd/vsftpd.conf
預設是開啟的,但是要指定一個埠範圍,開啟vsftpd.conf檔案,在後面加上
pasv_min_port=30000
pasv_max_port=30999
表示埠範圍為30000~30999,這個可以隨意改。改完重啟一下vsftpd
由於指定這段埠範圍,iptables也要相應的開啟這個範圍,所以像上面那樣開啟iptables檔案。
vim /etc/sysconfig/iptables
也是在21上下面另起一行,更那行差不多,只是把21 改為30000:30999,然後:wq儲存,重啟下iptables。這樣就搞定了。
這樣vsftpd就配置好了,我們要在nginx的conf配置檔案裡面指向ftp的路徑,才能訪問裡面的圖片
8.nginx指向ftp路徑
vim /usr/local/nginx/conf/nginx.conf
修改框框的內容,然後在ftpuser下面建立www資料夾,把www的資料夾許可權改成777,在www下建立images,修改許可權為777
上傳一張圖片試試
訪問成功