FastDFS-文件服務器

參考地址:php

  https://blog.csdn.net/kamroselee/article/details/80334621
  https://www.cnblogs.com/chiangchou/p/fastdfs.htmlhtml

1、FastDFS編譯:nginx

1. 下載安裝libfastcommon:git

下載:   wget -P /srv/ftp https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz
解壓:   tar xzvf /srv/ftp/V1.0.39.tar.gz -C /usr/local/src/ 重命名:  mv /usr/local/src/libfastcommon-1.0.39 /usr/local/src/libfastcommon
進入目錄: cd /usr/local/src/libfastcommon/  
編譯:  ./make.sh         
安裝:  ./make.sh install   

2. 建立兩個軟鏈接:github

ln -sv /usr/include/fastcommon/ /usr/local/include/fastcommon ln -sv /usr/lib/libfastcommon.so /usr/local/lib/libfastcommon.so

3. 將FastDFS上傳進行進行編譯安裝:vim

解壓:  tar xzvf /srv/ftp/FastDFS_v5.08.tar.gz  -C /usr/local/src/ 進入目錄:cd /usr/local/src/FastDFS/ 編譯:  ./make.sh 安裝:  ./make.sh install

  檢查是否安裝成功:「ll /etc/fdfs/」,是否有配置模板;數組

2、fastdfs-tracker(追蹤)服務安裝:緩存

1.經過模板複製一個tracker配置文件:session

cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

2. 建立一個目錄進行數據存儲:app

cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

3. 修改tracker.conf配置文件:vim /etc/fdfs/tracker.conf

port=22122      //tracker服務端口 base_path=/usr/data/fdfs/tracker  //tracker數據存儲目錄

4. 進行客戶端配置文件拷貝:

cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf

5. 建立客戶端信息的存儲目錄:

mkdir -p /usr/data/fdfs/client

6. 編輯「client.conf」配置文件:vim /etc/fdfs/client.conf

base_path=/usr/data/fdfs/client tracker_server=192.168.195.160:22122

7. 啓動tracker服務:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

8.此時能夠經過client上傳圖片進行驗證:(建議storagr服務安裝完成一塊兒測試)

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /srv/ftp/xb.png  //上傳 /usr/bin/fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKjDoV0lfHSAbXyxAAGQU2qW1Zw280.png  //下載 /usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKjDoV0lfHSAbXyxAAGQU2qW1Zw280.png    //刪除
/usr/bin/fdfs_monitor /etc/fdfs/client.conf  //查看全部主機狀態

3、fastdfs-storage(存儲)服務安裝:

1. 經過模板複製一個storage配置文件:

cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

2. 定義一個目錄負責存儲storage數據:mkdir -p /usr/data/fdfs/storage

3. 配置「storage.conf」配置文件:vim /etc/fdfs/storage.conf

base_path=/usr/data/fdfs/storage    //數據保存目錄 store_path0=/usr/data/fdfs/storage   //數據存儲目錄,能夠在此掛載多個路徑 tracker_server=192.168.195.160:22122  //tracker服務地址

4. 啓動storage服務:

3、fastdfs-storage(存儲)服務安裝:

1. 經過模板複製一個storage配置文件:

cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

2. 定義一個目錄負責存儲storage數據:mkdir -p /usr/data/fdfs/storage

3. 配置「storage.conf」配置文件:vim /etc/fdfs/storage.conf

base_path=/usr/data/fdfs/storage    //數據保存目錄 store_path0=/usr/data/fdfs/storage   //數據存儲目錄,能夠在此掛載多個路徑 tracker_server=192.168.195.160:22122  //tracker服務地址

4. 啓動storage服務:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

4、storage配置nginx:

1. 將fastdfs與nginx有關的程序包上傳:

2. 解壓到「usr/local/src」目錄中:

tar xzvf /srv/ftp/nginx-1.11.3.tar.gz -C /usr/local/src/ tar xzvf /srv/ftp/echo-nginx-module-0.59.tar.gz -C /usr/local/src/ tar xzvf /srv/ftp/ngx_cache_purge-2.3.tar.gz -C /usr/local/src/ tar xzvf /srv/ftp/nginx-upstream-fair-a18b409.tar.gz -C /usr/local/src/ tar xzvf /srv/ftp/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/src/ tar xzvf /srv/ftp/pcre-8.36.tar.gz -C /usr/local/src/ tar xvf /srv/ftp/zlib-1.2.8.tar.gz -C /usr/local/src/

3. 創建一個nginx存儲目錄:

mkdir -p /usr/local/nginx/{logs,conf,fastcgi_temp,sbin,client_body_temp,proxy_temp,uwsgi_temp,scgi_temp}

4. 進行nginx源代碼目錄進行配置、編譯安裝:

  》進入nginx源代碼目錄:cd /usr/local/src/nginx-1.11.3/

  》編譯前的配置:

./configure --prefix=/usr/local/nginx/ \ --sbin-path=/usr/local/nginx/sbin/ \ --with-http_ssl_module \ --conf-path=/usr/local/nginx/conf/nginx.conf \ --pid-path=/usr/local/nginx/logs/nginx.pid \ --error-log-path=/usr/local/nginx/logs/error.log \ --http-log-path=/usr/local/nginx/logs/access.log \ --http-fastcgi-temp-path=/usr/local/nginx/fastcgi_temp \ --http-client-body-temp-path=/usr/local/nginx/client_body_temp \ --http-proxy-temp-path=/usr/local/nginx/proxy_temp \ --http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp \ --http-scgi-temp-path=/usr/local/nginx/scgi_temp \ --add-module=/usr/local/src/echo-nginx-module-0.59 \ --add-module=/usr/local/src/gnosek-nginx-upstream-fair-a18b409 \ --add-module=/usr/local/src/ngx_cache_purge-2.3 \ --add-module=/usr/local/src/fastdfs-nginx-module/src \ --with-zlib=/usr/local/src/zlib-1.2.8 \ --with-pcre=/usr/local/src/pcre-8.36

  》程序編譯的時候會出現一個錯誤,打開目錄進行修改:vim /usr/local/src/fastdfs-nginx-module/src/config

CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"  //原來
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"  //修改後

  》執行編譯和安裝:make && make install

5. 此時進行nginx與storage整合:

  》拷貝配置文件:cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

  》修改「mod_fastdfs.conf」配置文件:vim /etc/fdfs/mod_fastdfs.conf 

base_path=/usr/data/fdfs/storage      //設置storage存儲地址 tracker_server=192.168.195.160:22122    //tracker服務地址 group_name=group1               //設置存儲組名稱 url_have_group_name = true          //設置URL顯示組名 store_path0=/usr/data/fdfs/storage     //設置數組存儲節點

6. 要想HTTP訪問,還須要兩個Http配置文件:

cp /usr/local/src/FastDFS/conf/http.conf /etc/fdfs/ cp /usr/local/src/FastDFS/conf/mime.types /etc/fdfs/

7. 在進行文件上傳的時候有一個「M00」的路徑,若是要想經過nginx訪問,必須爲其設置一個軟鏈接:ln -s /usr/data/fdfs/storage /usr/data/fdfs/storage/M00

8. 修改nginx配置文件:vim /usr/local/nginx/conf/nginx.conf

location ~/group[1-3]/M00 { root /usr/data/fdfs/storage/ ; ngx_fastdfs_module ; }

9. 進行nginx的測試:/usr/local/nginx/sbin/nginx -t

10. 若是複製配置多臺storage:

  》修改:vim /etc/fdfs/storage.conf

group_name=group2

  》修改:vim /etc/fdfs/mod_fastdfs.conf

group_name=group2

11. 啓動storage服務:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

     啓動tracker服務:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

  啓動nginx:/usr/local/nginx/sbin/nginx

     查看主機狀態:/usr/bin/fdfs_monitor /etc/fdfs/client.conf

5、tracker配置nginx:

1. 將tracker與nginx有關的程序包上傳:

2. 將全部源代碼解壓:

tar xzvf /srv/ftp/nginx-1.11.3.tar.gz -C /usr/local/src/ tar xzvf /srv/ftp/echo-nginx-module-0.59.tar.gz -C /usr/local/src/ tar xzvf /srv/ftp/ngx_cache_purge-2.3.tar.gz -C /usr/local/src/ tar xzvf /srv/ftp/nginx-upstream-fair-a18b409.tar.gz -C /usr/local/src/ tar xzvf /srv/ftp/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/src/ tar xzvf /srv/ftp/pcre-8.36.tar.gz -C /usr/local/src/ tar xvf /srv/ftp/zlib-1.2.8.tar.gz -C /usr/local/src/

3. 建立nginx編譯後的存儲目錄:

mkdir -p /usr/local/nginx/{logs,conf,fastcgi_temp,sbin,client_body_temp,proxy_temp,uwsgi_temp,scgi_temp}

4. 進行nginx源代碼目錄進行配置、編譯安裝:

  》進入nginx源代碼目錄:cd /usr/local/src/nginx-1.11.3/

  》編譯前的配置:

./configure --prefix=/usr/local/nginx/ \ --sbin-path=/usr/local/nginx/sbin/ \ --with-http_ssl_module \ --conf-path=/usr/local/nginx/conf/nginx.conf \ --pid-path=/usr/local/nginx/logs/nginx.pid \ --error-log-path=/usr/local/nginx/logs/error.log \ --http-log-path=/usr/local/nginx/logs/access.log \ --http-fastcgi-temp-path=/usr/local/nginx/fastcgi_temp \ --http-client-body-temp-path=/usr/local/nginx/client_body_temp \ --http-proxy-temp-path=/usr/local/nginx/proxy_temp \ --http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp \ --http-scgi-temp-path=/usr/local/nginx/scgi_temp \ --add-module=/usr/local/src/echo-nginx-module-0.59 \ --add-module=/usr/local/src/gnosek-nginx-upstream-fair-a18b409 \ --add-module=/usr/local/src/ngx_cache_purge-2.3 \ --add-module=/usr/local/src/fastdfs-nginx-module/src \ --with-zlib=/usr/local/src/zlib-1.2.8 \ --with-pcre=/usr/local/src/pcre-8.36

  》程序編譯的時候會出現一個錯誤,打開目錄進行修改:vim /usr/local/src/fastdfs-nginx-module/src/config

CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"  //原來
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"  //修改後

  》執行編譯和安裝:make && make install

5. 進行nginx配置文件修改:vim /usr/local/nginx/conf/nginx.conf

  》定義一些nginx數據緩存目錄:mkdir -p /usr/data/ngin/{tmp,cache}

#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 65536; use epoll; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 300m; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_cache_path /usr/data/nginx/cache levels=1:2 keys_zone=http-cache:500m max_size=10g inactive=30d; proxy_temp_path /usr/data/nginx/tmp; upstream fdfs_group1 { server 192.168.28.227:8090 weight=1 max_fails=2 fail_timeout=30s; } upstream fdfs_group2 { server 192.168.28.227:8091 weight=1 max_fails=2 fail_timeout=30s; } #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location /group1/M00 { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache http-cache; proxy_cache_valid 200 304 12h; proxy_cache_key $uri$is_args$args; proxy_pass http://fdfs_group1;
 expires 30d; } location /group2/M00 { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache http-cache; proxy_cache_valid 200 304 12h; proxy_cache_key $uri$is_args$args; proxy_pass http://fdfs_group2;
 expires 30d; } location ~ /purge(/.*) { allow 127.0.0.1; allow 192.168.28.0/24; deny all; proxy_cache_purge http-cache  $1$is_args$args; } location / { root html; index index.html index.htm; } #error_page 404              /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504  /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1;
 #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
 # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }

6.  nginx啓動檢測:/usr/local/nginx/sbin/nginx -t

 nginx啓動:/usr/local/nginx/sbin/nginx

相關文章
相關標籤/搜索