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;
}