【原】Nginx搭建FTP服務器的細節問題


     關於文件服務器很多實現方法,比如采用阿里的分布式文件系統FastDFS,以及自己內部搭建FTP服務器,這里記錄一下關於nginx搭建FTP文件系統流程。

  •      ftp服務器搭建的步驟網上也是很多,這里打算詳細說明,只是貼一下安裝好ftp后如何添加用戶名和密碼,方便以后參考: 
  1.   yum -y install vsftpd
  2.   useradd ftpuser  (添加用戶)
  3.       passwd ftpuser (對ftpuser添加密碼,需要重復輸入2次,最好是8位密碼)

    上面的3個步驟是安裝FTP和創建用戶和設置密碼。

     

  •      默認的yum安裝 ftp的路徑是在/etc/vsftpd,這時候通過上面創建的 用戶從 FTP登陸后,進入 home目錄就可以查看到ftpuser文件夾

                              

 

           上圖這里有個小細節就是在Linux中,創建一個文件時,該文件的擁有者都是創建該文件的用戶,因為我是創建了一個ftpuser用戶,所以這個文件夾所有者是ftpuser。這時候我們想要通過瀏覽器訪問圖片的話需要通過 ftp://username:password@ip 這種方式來獲取圖片,但是這個很不安全,因為把用戶名,密碼,ip都暴漏出去了, 所以這時候需要一個代理來訪問FTP下面的圖片,這時候就可以通過nginx的代理機制來實現我們外部對ftp文件的訪問,主要配置很簡單,就是修改nginx.conf的配置文件,如下圖:

  

       上面紅色框框是我存放圖片的路徑,  重啟nginx訪問圖片出現了403(禁止訪問),后來排查了ftp的問題、檢查nginx的配置,更改文件夾的所有者ftpuser變為root 還是一直403;最后才發現nginx.conf頂部有個user被注釋了,后來嘗試打開后再次訪問,能正常看到圖片,所以問題就是這里,默認的是nobody,沒有權限組,需要打開注釋並賦給有權限的用戶

 修改后如下:

  

                 

 

     

重啟nginx再次刷新頁面,可以發現圖片加載出來了,之前出現的403權限問題也就解決了   

 


 

總結

盡管通過這種方式能實現分布式文件存儲,但也存在弊端,就是FTP很容易被入侵,而且小型的網站使用FTP作為文件服務器是沒問題的,但是項目訪問量持續增加的話,必要考慮文件服務器的擴展性與高可用,目前成熟的文件服務器也有很多,例如FastDFS,可以快速的進行線性擴容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM