首页 > 代码库 > FastDFS配置Nginx模块

FastDFS配置Nginx模块

#

#fastdfs-nginx-module:下载地址

#Nginx1.10.1 下载地址

#ngx-cache-purge:下载地址

#nginx 缓存:详细介绍

#nginx 官方模块详解:http://nginx.org/en/docs/


#nginx 安装(Tracker节点)

#Nginx缓存和反向代理

#下载软件

[root@Tracker ~]# wget -c https://nginx.org/download/nginx-1.10.1.tar.gz

[root@Tracker ~]# wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz

#解压ngx_cache_purge

[root@Tracker ~]# tar -xf ngx_cache_purge-2.3.tar.gz 

#编译安装nginx

#安装依赖包(EPEL源)

[root@Tracker ~]# cd nginx-1.10.1/

[root@Tracker nginx-1.10.1]# yum install -y pcre pcre-devel openssl-devel openssl gcc-c++ 

[root@Tracker nginx-1.10.1]# ./configure --prefix=/usr/local/nginx --add-module=/root/ngx_cache_purge-2.3 --with-http_stub_status_module --with-http_ssl_module 

[root@Tracker nginx-1.10.1]# make && make install


#修改配置文件

[root@Tracker ~]# cat /usr/local/nginx/conf/nginx.conf | grep -v "#" | grep -v "^$"

user root;

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    tcp_nopush     on;

    keepalive_timeout  65;

    

    proxy_cache_path /usr/local/nginx/proxy_cache_path levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=10g;

    proxy_temp_path /usr/local/nginx/proxy_tmp_path;

    gzip on;

    gzip_min_length 1k;

    gzip_buffers 4 16k;

    gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;

    gzip_vary on;

    upstream fdfs {

server 192.168.174.137:80 max_fails=3 fail_timeout=30s weight=1;

server 192.168.174.138:80 max_fails=3 fail_timeout=30s weight=1;

}

    server {

        listen       80;

        server_name  localhost;

        location / {

            root   html;

            index  index.html index.htm;

        }

location /group1/M00 {

proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;

proxy_pass http://fdfs;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

proxy_connect_timeout 300;

proxy_send_timeout 300;

proxy_read_timeout 600;

proxy_max_temp_file_size 10m;

proxy_busy_buffers_size 256k;

proxy_buffer_size 256k; 

proxy_buffers 4 256k; 

proxy_cache_valid 200 304 12h ;

      proxy_cache_valid 301 302 1m ;

      proxy_cache_valid any 1m;

proxy_cache cache_one;

proxy_cache_key $host$uri$is_args$args;

location ~ /purge(/.*) {

        allow 127.0.0.1 ;

        allow 192.168.174.0/24 ;

        deny all ;

        proxy_cache_purge cache_one $host$1$is_args$args ;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}


#测试配置文件是否正确

[root@Tracker ~]# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful


#创建缓存目录

[root@Tracker ~]# mkdir -p /usr/local/nginx/proxy_temp_path

[root@Tracker ~]# mkdir -p /usr/local/nginx/proxy_cache_path

#启动服务

[root@Tracker ~]# /usr/local/nginx/sbin/nginx 

[root@Tracker ~]# netstat -lntup | grep 80

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8787/nginx: master  





#nginx 安装(两台Storage节点)

#下载软件

[root@Storage_1 ~]# wget -c https://nginx.org/download/nginx-1.10.1.tar.gz

[root@Storage_1 ~]# wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip

[root@Storage_1 ~]# tar -xf nginx-1.10.1.tar.gz 

[root@Storage_1 ~]# unzip master.zip 

[root@Storage_1 nginx-1.10.1]# yum install -y pcre pcre-devel openssl-devel openssl gcc-c++ 

[root@Storage_1 nginx-1.10.1]# ./configure --prefix=/usr/local/nginx --add-module=/root/fastdfs-nginx-module-master/src --with-http_stub_status_module --with-http_ssl_module

[root@Storage_1 nginx-1.10.1]# make && make install

[root@Storage_1 ~]# cp /root/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

[root@Storage_1 ~]# cp /root/fastdfs-master/conf/http.conf /etc/fdfs/

[root@Storage_1 ~]# cp /root/fastdfs-master/conf/mime.types  /etc/fdfs/

[root@Storage_1 ~]# mkdir /data/fdfs/Storage/data/group1

[root@Storage_1 ~]# ln -s /data/fdfs/Storage/data/ /data/fdfs/Storage/data/group1/M00 

[root@Storage_1 ~]# vim /etc/fdfs/mod_fastdfs.conf 

#修改如下值

tracker_server=192.168.174.136:22122 #第40行

url_have_group_name = true    #第53行

store_path0=/data/fdfs/Storage/   #第60行

log_filename=/usr/local/nginx/logs/mod_fastdfs.log   #第78行


[root@Storage_1 ~]# vim /usr/local/nginx/conf/nginx.conf

#在server 字段内部增加如下location

        location /group1/M00 {

        root /data/fdfs/Storage/data;

         ngx_fastdfs_module;

        }


#测试配置文件

[root@Storage_1 ~]# /usr/local/nginx/sbin/nginx -t

ngx_http_fastdfs_set pid=5336

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful


#启动服务

#storage_1

[root@Storage_1 ~]# /usr/local/nginx/sbin/nginx 

ngx_http_fastdfs_set pid=5337

#storage_2

[root@Storage_2 ~]# /usr/local/nginx/sbin/nginx 

ngx_http_fastdfs_set pid=6263



[root@Storage_1 logs]# curl -I 192.168.174.138

HTTP/1.1 200 OK

Server: nginx/1.10.1

Date: Wed, 19 Apr 2017 22:34:44 GMT

Content-Type: text/html

Content-Length: 612

Last-Modified: Wed, 19 Apr 2017 22:06:36 GMT

Connection: keep-alive

ETag: "58f7df6c-264"

Accept-Ranges: bytes


#若服务不能正常运行,将/usr/local/nginx/conf/nginx.conf 中第一行 user nobody 修改为 user root


[root@Storage_1 logs]# curl -I 192.168.174.137

HTTP/1.1 200 OK

Server: nginx/1.10.1

Date: Wed, 19 Apr 2017 13:35:50 GMT

Content-Type: text/html

Content-Length: 612

Last-Modified: Wed, 19 Apr 2017 13:03:25 GMT

Connection: keep-alive

ETag: "58f7601d-264"

Accept-Ranges: bytes




#上传文件

[root@Tracker ~]# echo "hello" > test.txt

[root@Tracker ~]# fdfs_upload_file  /etc/fdfs/client.conf  test.txt

group1/M00/00/00/wKiuiVj3aM-AbzDqAAAABncc3SA048.txt


#Storage_1节点

技术分享


#Storage_2节点

技术分享

#stracker节点

技术分享



#进入缓存目录

[root@Tracker 3b]# pwd

/usr/local/nginx/proxy_cache_path/a/3b  (目录可能不一样)

[root@Tracker 3b]# ls

adc71d260066e8ae813898b1901e33ba






本文出自 “Chauncey” 博客,请务必保留此出处http://cqwujiang.blog.51cto.com/10808946/1917540

FastDFS配置Nginx模块