圖片服務器需要兩個服務:
Nginx(圖片訪問): 1、http服務:可以使用nginx做靜態資源服務器。也可以使用apache。推薦使用nginx,效率更高。 2、反向代理 實現 負載均衡 ftp服務(圖片上傳): 使用linux做服務器,在linux中有個ftp組件vsftpd。
兩個服務器的搭建就不詳細介紹了,主要記錄今天在用ftp上傳圖片遇到的問題。
vsftp裝好后,開啟21端口,因為ftp默認的端口為21,而centos默認是沒有開啟的。同時修改selinux開啟外網訪問。
修改selinux:
執行以下命令查看狀態:
[root@bogon ~]# 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
[root@bogon ~]#
執行上面命令,再返回的結果看到兩行都是off,代表,沒有開啟外網的訪問
[root@bogon ~]# setsebool -P allow_ftpd_full_access on
[root@bogon ~]# setsebool -P ftp_home_dir on
這樣應該就沒問題了,這時可以實現圖片上傳。(如果,還是不行,看看是不是用了ftp客戶端工具用了passive模式訪問了,如提示Entering Passive mode,就代表是passive模式,默認是不行的,因為ftp passive模式被iptables擋住了,下面會講怎么開啟,如果懶得開的話,就看看你客戶端ftp是否有port模式的選項,或者把passive模式的選項去掉。如果客戶端還是不行,看看客戶端上的主機的電腦是否開了防火墻,關吧)
關于圖片服務器的配置
進入nginx的配置文件:將nginx服務器默認網站根目錄位置定義到ftp服務賬戶ftpuser的根目錄下的www目錄,有兩種方法
cd /usr/local/nginx/conf/
方法一、在配置文件server{}中location /{} 修改配置:location / { root /home/ftpuser/www;#定義服務器的默認網站根目錄位置 index index.html index.php index.htm;#定義首頁索引文件的名稱}其中:/home/ftpuser/www;為創建FTP服務賬戶ftpuser的根目錄下的www目錄方法二、在http{}內配置新服務 listen 8080; server_name localhost; #charset utf-8; #access_log logs/host.access.log main; #默認請求 location / { root /home/ftpuser/www;#定義服務器的默認網站根目錄位置 index index.html index.php index.htm;#定義首頁索引文件的名稱 } }
現在在/home/ftpuser/www目錄下新建一個image文件夾,傳入圖片hello.jpg 主機地址欄輸入:http://xxx.xxx.xx.xx/images.hello.jpg,此時卻出現403錯誤,應該是沒有訪問權限造成的,在nginx的conf配置文件頭中加入user ftpuser,保存并退出重啟nginx,再次訪問,成功!看文倉www.92to.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20161222/76170.html
文章列表