1. 程式人生 > >taotao商城學習部署圖片服務nginx與vsftp

taotao商城學習部署圖片服務nginx與vsftp

最近在學習淘淘商城,第一次部署nginx和vsftp真的是饒了好多的彎路,現在已經部署了3次了,寫個部落格整理一下

CentOS7.0下nginx的安裝與配置

系統:CentOS 7.0 x64

nginx版本:nginx-1.9.9

安裝方式:原始碼編譯安裝

1.安裝必須環境

nginx的編譯需要c++,同時prce(重定向支援)和openssl(https支援)也需要安裝。

[[email protected] ~]# yum install gcc-c++
[[email protected] ~]# yum -y install pcre*
[[email protected]
~]# yum -y install openssl*

2.下載nginx-1.9.9.tar.gz,可放在 /usr/local/ 目錄下

[[email protected] ~]# cd /usr/local/
[[email protected] local]# wget http://nginx.org/download/nginx-1.9.9.tar.gz

3.解壓及編譯

[[email protected] local]# tar -zxvf nginx-1.9.9.tar.gz

進入nginx目錄

[[email protected] local]# cd nginx-1.9.9

首先,設定安裝目錄為 /usr/local/nginx,大家也可以自己建立個目錄來放,便於以後查詢

[[email protected] nginx-1.9.9]# ./configure --prefix=/usr/local/nginx

如果沒有報錯,開始編譯安裝

[[email protected] nginx-1.9.9]# make
[[email protected] nginx-1.9.9]# make install

4.防火牆

埠開啟80

//開放埠命令
firewall-cmd --zone=public --add-port=80/tcp --permanent
//執行完上面的命令後需要重新載入防火牆
firewall-cmd --reload

也可將防火牆臨時關閉

systemctl stop firewalld.service

5.啟動nginx服務

進入安裝目錄 /usr/local/nginx

[[email protected] ~]# cd /usr/local/nginx
[[email protected] sbin]# ./nginx

檢視程序,可以看到nginx的master和worker程序

[[email protected] sbin]# ps -ef | grep nginx
root     32150     1  0 13:28 ?        00:00:00 nginx: master process ./nginx
nobody   32151 32150  0 13:28 ?        00:00:00 nginx: worker process
root     32154 28494  0 13:28 pts/1    00:00:00 grep nginx

可以通過訪問ip:80測試,看到頁面這樣的提示就說明安裝成功

重啟的命令(暫時不需要用上):

[[email protected] sbin]# ./nginx -s reload

6.設定nginx開機自啟

[[email protected] nginx]# cd /
[[email protected] /]# vim /etc/rc.local

 

CentOS7.0下安裝FTP服務的方法

1.執行下面的命令就可以完成vsftpd的安裝

[[email protected] /]# yum -y install vsftpd

安裝完成再次利用上面的rpm命令檢查一下是否完成安裝,如果完成安裝,那就可以繼續。

2.開啟vsftpd服務

[[email protected] /]# systemctl start vsftpd.service

3.檢查vsftpd服務

[[email protected] /]# service vsftpd status

4.ftp服務使用的是21埠,有時候也使用20埠。21控制連線,20資料連線。一般來說,20,21,22,443,80 這幾個埠都應該放行。

firewall-cmd --zone=public --add-port=21/tcp --permanent

命令都是重複的我就不一一打上去了,如果你上面選擇了臨時關閉防火牆,那麼就略過上面的操作

還要安裝ftp客戶端,否則ftp命令無法使用

rpm -Uvh http://mirror.centos.org/centos/6/os/x86_64/Packages/ftp-0.17-54.el6.x86_64.rpm

補充更新:如果執行上面命令後提示以下錯誤資訊:

程式碼如下:

libc.so.6 is needed by ftp-0.17-35.el5.i386

則可以通過命令安裝依賴包glibc

程式碼如下:

rpm –Uvh http://mirror.centos.org/centos/6/os/x86_64/Packages/glibc-2.12-1.132.el6.x86_64.rpm

5.新增一個ftp使用者

此使用者就是用來登入ftp伺服器用的。

[[email protected] ~]# useradd ftpuser

這樣一個使用者建完,可以用這個登入,記得用普通登入不要用匿名了。登入後預設的路徑為 /home/ftpuser.

6.給ftp使用者新增密碼

[[email protected] ~]# passwd ftpuser

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

6.登入ftp測試一下

[[email protected] /]# ftp localhost

輸入剛剛的使用者名稱ftpuser和密碼123456,然後輸入退出命令bye

7.修改selinux

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

修改selinux:

執行以下命令檢視狀態:

[[email protected] /]#  getsebool -a | grep ftp 

ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off
執行上面命令,再返回的結果看到兩行都是off,代表,沒有開啟外網的訪問

執行如下命令

[[email protected] ~]# setsebool -P allow_ftpd_full_access on
[[email protected] ~]# setsebool -P tftp_home_dir on

8.關閉匿名訪問

修改/etc/vsftpd/vsftpd.conf檔案:

[[email protected] /]# vim /etc/vsftpd/vsftpd.conf

 

9.開啟被動模式

還是上面的檔案,在最後加上

pasv_min_port=30000

pasv_max_port=30999

表示埠範圍為30000~30999,這個可以隨意改。

10.設定ftp的預設路徑

還是上面的檔案,在最後加上

local_root=/home/ftpuser/

都加完後wq儲存退出

重啟ftp服務

[[email protected] /]# systemctl restart vsftpd.service

11.設定開機啟動vsftpd ftp服務

[[email protected] ~]# chkconfig vsftpd on

 

ftp也部署好了,下面下載FileXilla安裝來連線試試吧

 

弄完之後用nginx訪問可能會404,還需要下面操作

①需要在nginx/www下建立一個images資料夾(實際訪問的不是這個路徑)

mkdir /usr/local/nginx/www/images

②修改/usr/local/nginx/conf/nginx.conf在預設的server裡再新增一個location並指定實際路徑:

location /images/ {

    root  /home/ftpuser/www/;

    autoindex on;

}