1. 程式人生 > >ftp伺服器和nginx伺服器做圖片伺服器

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。即可解決。