Linux平臺通過nginx和vsftpd構建圖片服務器的方法

一、nginx安裝

1、nginx安裝環境

nginx是c語言開發,建議在linux上運行,本教程使用centos6.5作為安裝環境。

安裝nginx需要先將官網下載的源碼進行編譯,編譯依賴gcc環境,如果沒有gcc環境,需要安裝gcc:yum install gcc-c++

pcre(perlcompatible regular expressions)是一個perl庫,包括 perl 兼容的正則表達式庫。nginx的http模塊使用pcre來解析正則表達式,所以需要在linux上安裝pcre庫。

yuminstall?-y?pcre?pcre-devel

注:pcre-devel是使用pcre開發的一個二次開發庫。nginx也需要此庫。

zlib庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip,所以需要在linux上安裝zlib庫。

yuminstall?-y?zlib?zlib-devel

openssl是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及ssl協議,并提供豐富的應用程序供測試或其它目的使用。

nginx不僅支持http協議,還支持https(即在ssl協議上傳輸http),所以需要在linux安裝openssl庫。

yuminstall?-y?openssl?openssl-devel

2、編譯安裝

將nginx-1.8.0.tar.gz拷貝至linux服務器。

解壓:

tar?-zxvf?nginx-1.8.0.tar.gz

進入nginx的根目錄:

cd?nginx-1.8.0

a.configure

./configure –help查詢詳細參數(參考本教程附錄部分:nginx編譯參數)

參數設置如下:

./configure?? --prefix=/usr/local/nginx?? --pid-path=/var/run/nginx/nginx.pid?? --lock-path=/var/lock/nginx.lock?? --error-log-path=/var/log/nginx/error.log?? --http-log-path=/var/log/nginx/access.log?? --with-http_gzip_static_module?? --http-client-body-temp-path=/var/temp/nginx/client? --http-proxy-temp-path=/var/temp/nginx/proxy? --http-fastcgi-temp-path=/var/temp/nginx/fastcgi? --http-uwsgi-temp-path=/var/temp/nginx/uwsgi? --http-scgi-temp-path=/var/temp/nginx/scgi

注意:上邊將臨時文件目錄指定為/var/temp/nginx,需要在/var下創建temp及nginx目錄

b.編譯安裝

make make?install

安裝成功查看安裝目錄 :

Linux平臺通過nginx和vsftpd構建圖片服務器的方法

c.啟動nginx

cd?/usr/local/nginx/sbin/ ./nginx

查詢nginx進程:

Linux平臺通過nginx和vsftpd構建圖片服務器的方法

15098是nginx主進程的進程id,15099是nginx工作進程的進程id

注意:執行./nginx啟動nginx,這里可以-c指定加載的nginx配置文件,如下:

./nginx-c?/usr/local/nginx/conf/nginx.conf

如果不指定-c,nginx在啟動時默認加載conf/nginx.conf文件,此文件的地址也可以在編譯安裝nginx時指定./configure的參數(–conf-path= 指向配置文件(nginx.conf))

d.停止nginx

方式1,快速停止:

cd?/usr/local/nginx/sbin? ./nginx?-s?stop

此方式相當于先查出nginx進程id再使用kill命令強制殺掉進程。

方式2,完整停止(建議使用):

cd?/usr/local/nginx/sbin? ./nginx?-s?quit

此方式停止步驟是待nginx進程處理任務完畢進行停止。

e.重啟nginx

方式1,先停止再啟動(建議使用):

對nginx進行重啟相當于先停止nginx再啟動nginx,即先執行停止命令再執行啟動命令。

如下:

./nginx?-s?quit? ./nginx

方式2,重新加載配置文件:

當nginx的配置文件nginx.conf修改后,要想讓配置生效需要重啟nginx,使用-s reload不用先停止nginx再啟動nginx即可將配置信息在nginx中生效,如下:

./nginx?-s?reload

f.測試

nginx安裝成功,啟動nginx,即可訪問虛擬機上的nginx:

Linux平臺通過nginx和vsftpd構建圖片服務器的方法

到這說明nginx上安裝成功。

二、ftp安裝

1、安裝vsftpd組件

[root@bogon?~]#?yum?-y?install?vsftpd

安裝完后,有/etc/vsftpd/vsftpd.conf文件,是vsftp的配置文件。

2、添加一個ftp用戶

此用戶就是用來登錄ftp服務器用的。

[root@bogon?~]#?useradd?ftpuser

這樣一個用戶建完,可以用這個登錄,記得用普通登錄不要用匿名了。登錄后默認的路徑為 /home/ftpuser.??????

3、給ftp用戶添加密碼。

[root@bogon?~]#?passwd?ftpuser

輸入兩次密碼后修改密碼。

4、防火墻開啟21端口

因為ftp默認的端口為21,而centos默認是沒有開啟的,所以要修改iptables文件,有些安裝的centos默認沒有開啟防火墻,則無需考慮這步了。

[root@bogon?~]#?vim?/etc/sysconfig/iptables

在行上面有22 -jaccept 下面另起一行輸入跟那行差不多的,只是把22換成21,然后:wq保存。

還要運行下,重啟iptables

[root@bogon?~]#?service?iptables?restart

5、修改selinux

外網是可以訪問上去了,可是發現沒法返回目錄(使用ftp的主動模式,被動模式還是無法訪問),也上傳不了,因為selinux作怪了。

修改selinux:

執行以下命令查看狀態:

[root@bogon?~]#?getsebool?-a?|?grepftp? 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模式的選項去掉。如果客戶端還是不行,看看客戶端上的主機的電腦是否開了防火墻,關吧)?

filezilla的主動、被動模式修改:

菜單:編輯→設置

Linux平臺通過nginx和vsftpd構建圖片服務器的方法

6、關閉匿名訪問

修改/etc/vsftpd/vsftpd.conf文件:

Linux平臺通過nginx和vsftpd構建圖片服務器的方法

重啟ftp服務:

[root@bogon?~]#?service?vsftpd?restart

7、開啟被動模式

默認是開啟的,但是要指定一個端口范圍,打開vsftpd.conf文件,在后面加上

pasv_min_port=30000? pasv_max_port=30999

表示端口范圍為30000~30999,這個可以隨意改。改完重啟一下vsftpd
由于指定這段端口范圍,iptables也要相應的開啟這個范圍,所以像上面那樣打開iptables文件。
也是在21上下面另起一行,更那行差不多,只是把21 改為30000:30999,然后:wq保存,重啟下iptables。這樣就搞定了。?

8、設置開機啟動vsftpd ftp服務

[root@bogon?~]#?chkconfig?vsftpd?on

? ? ? ? ?

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享