#
#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行
#在server 字段內部增加如下location
[root@Storage_1 ~]# vim /usr/local/nginx/conf/nginx.conf
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