第一步:我們安裝nginx
首先,我們需要下載nginx,下載nginx的話,我們需要先安裝nginx需要的環境。
1.gcc
安裝nginx需要先將官網下載的源碼進行編譯,編譯依賴gcc環境,如果沒有gcc環境,需要安裝gcc:
yum install gcc-c++
2.pcre
PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx的http模塊使用pcre來解析正則表達式,所以需要在linux上安裝pcre庫。
yum install -y pcre pcre-devel
3.zlib
zlib庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip,所以需要在linux上安裝zlib庫。
yum install -y zlib zlib-devel
4.openssl
OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程序供測試或其它目的使用。nginx不僅支持http協議,還支持https(即在ssl協議上傳輸http),所以需要在linux安裝openssl庫。
yum install -y openssl openssl-devel
然後我們安裝nginx
這裏我們安裝到指定目錄下面
$ cd /usr/local
wget http://nginx.org/download/nginx-1.12.0.tar.gz
解壓nginx包
$ tar -zxvf nginx-1.12.0.tar.gz
$ ls
可以看到一個nginx-1.12.0的文件夾並進入文件夾
接下來就是安裝了
使用--prefix參數指定nginx安裝的目錄,
make、make install安裝
默認安裝在/usr/local/nginx
$ ./configure
$ make
$ make install
到此大功告成。看一下nginx的安裝目錄
$ whereis nginx
給Nginx目錄權限,以便其它用戶也可以訪問nginx,如ftp圖片上傳,我們普通用戶最好也能訪問nginx
$ chmod -R 777 /usr/local/nginx/
啓動nginx
$ cd /usr/local/nginx/sbin/
$ ./nginx
查看nginx服務是否成功
$ netstat -ntlp
然後根據IP訪問
以上nginx就安裝好了
第二步:我們安裝vsfptd
使用命令 yum -y install vsftpd
然後添加一個用戶,此用戶就是專門用來登錄ftp服務器的
添加用戶
useradd ftpuser1 -s /sbin/nologin
設置密碼
passwd '密碼'
再次確認密碼 :'密碼'
添加權限(創建文件夾以及文件的權限)
chown -R ftpuser /home/ftpuser1 (爲這個ftpuser用戶設置這個目錄的訪問權限)
chmod 755 -R /home/ftpuserr1 (設置普通用戶的權限爲)
1.文件所有者可讀可寫可執行 --7
2.與文件所有者同屬一個用戶組的其他用戶可讀可執行 --5
3.其它用戶組可讀可執行 --5
還有就是防火牆要開啓21端口和22端口,21端口是供ftp服務來連接的,是沒有加密的,而22端口是供sftp服務來連接的,是有進行ssh2加密的,之前我們裝openssl的原因也就在於此了。
再一個,由於我們連接的是阿里雲的服務器,所以我們要指定相應的入職和出棧規則,我們的入棧方要開啓21,22,20這三個端口,出棧的話最後都開,然後就是我們的入棧的80端口,還有我們的防火牆中也要添加21,22,和80這三個端口,還有一個端口範圍,也是需要再入棧方加的,端口範圍爲1024~65535,這個是配置被動模式是的最小端口和最大端口的。我們加了之後防火牆也要記得加,防火牆加入可以通過iptables -I INPUT 6 -p tcp --dport 3000:5000 -j ACCEPT或者是直接到vi /etc/sysconfig/iptables中進行修改加入。
然後就是我們的vsftpd.conf這個文件對應的修改了。
這個文件的修改正是決定你用ftp工具或者java代碼能不能連通你搭建的這個ftp服務器的原因所在
第一個就是
anonymous_enable=YES 這個我們改成 NO
有人說要把前面這三個文件解開,然後創建chroot_list配置我們的用戶名和密碼
chroot_local_user=YES
chroot_list_enable=YES (1)
chroot_list_file=/etc/vsftpd/chroot_list (2)
說是這個chroot_list中配置的用戶可以瀏覽其主目錄之外的內容,而且上面的1和2是對應的,不然不生效
然後就是這個listen=NO 改成YES
listen_ipv6=YES改成NO
再就是以下三個的配置了
pasv_enable=YES
pasv_min_port=3000
pasv_max_port=3005
如果配置到這一步,再你重啓的情況下用工具連接,但是發現出現530或者550大概就是還有下面步驟沒有完成吧。
我們需要修改seliux
先查看相關信息配置狀態: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
這裏我的是出現的都是off表示是正常了,如果有的是on就需要修改成off
修改方式如下:
setsebool -P allow_ftpd_full_access off
但是之前看到的配置針對沒有開啓外網的說法是需要把一下二項改成on,這個大家如果遇到了可以這樣改
[root@bogon ~]# setsebool -P allow_ftpd_full_access on
[root@bogon ~]# setsebool -P ftp_home_dir on
然後再試一下應該就ok了
還有一個問題是,還需要配置一個nginx的映射,表示可以通過nginx去訪問我的那個圖片或者下載那個圖片
配置方式如下:
通過whereis nginx 找到 /sbin/nginx
然後通過nginx.conf去定位到這裏,加上如下圖所示內容,此段路徑正是對應的我們開始設置的權限的目錄
有什麼不懂的我們可以一起討論。畢竟我也知道沒有人幫忙的生活有多困難。