ftp伺服器和nginx伺服器做圖片伺服器
一,下載安裝ftp伺服器(vsftpd)
1. 使用命令安裝vsftpd伺服器:
[[email protected] /]# yum -y install vsftpd
2.開啟20,21埠
vi /etc/sysconfig/iptables
加上
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
3.將iptables-config 的 IPTABLES_MODULES=
"ip_conntrack_netbios_ns ip_conntrack_ftp ip_nat_ftp"
不設定會讀取目錄失敗。
vi /etc/sysconfig/iptables.conf
儲存,重啟防火牆·
service iptables restart
4. 將selinux設定為寬容模式(permissive)。不設定報錯500 OOPS: cannot change directory:/home/*******
vi /etc/sysconfig/selinux
5. 新增一個使用者:
[[email protected] /]# adduser ftpuser
[[email protected] /]# passwd ftpuser
輸入ftpuser的登入密碼 。這樣一個使用者建完,可以用這個登入,記得用普通登入不要用匿名了。登入後預設的路徑為 /home/ftpuser。
二,下載安裝nginx伺服器
A.環境準備
nginx是C語言開發,建議在linux上執行,本教程使用Centos7作為安裝環境。
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
注:pcre-devel是使用pcre開發的一個二次開發庫。nginx也需要此庫。
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
B.下載編譯安裝
1. 下載:
wget http://nginx.org/download/nginx-1.8.0.tar.gz
2. 解壓
tar -zxf nginx-1.8.0.tar.gz
3. 進入nginx解壓過的資料夾
cd nginx-1.8.0
使用命令:
./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
4.編譯安裝
make&make install
安裝目錄為:/usr/local/
5.開啟80埠
vi /etc/sysconfig/iptables
加入
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
重啟防火牆
6.啟動 nginx
cd /usr/local/nginx/sbin
./nginx
停止nginx
./nginx -s stop
虛擬機器內部訪問 地址為虛擬機器的ip地址 port:80
安裝成功。
三,ftp伺服器與nginx伺服器結合。
[[email protected] /]# vi /usr/local/nginx/conf/nginx.conf
更改nginx.conf的配置。以下都是在/usr/local/nginx/conf/nginx.conf 中配置兩個地方。
新增 user root;
user root;
#user nobody;
將location 的 root 改為/home/ftpuser
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /home/ftpuser;
index index.html index.htm;
}
此時使用http請求會出現以下錯誤。
經過查資料發現剛剛配置的nginx.conf,root /home/ftpuser。ftpuser資料夾下面沒有 index.php和index.html。只需進入到ftpuser資料夾下面,新建一個檔案命名為 index.php或者index.html。即可解決。