先上部署圖

提示一下, ip 192.168.72.138 上面部署了兩個group, 分別為 group1和g2. 另外, 同組之內的 port 要保持一致.
一.安裝準備 1. #每臺機器都添加兩個用戶 fastdfs 和 nginxuseradd fastdfs -M -s /sbin/nologin & useradd nginx -M -s /sbin/nologin2. #為了方便測試 請關閉防火墻service iptables stop && chkconfig iptables off3.本次采用的架構IP安裝組件添加用戶tracker192.168.72.140libfastcommonfastdfsNginx(用作反向代理)useradd fastdfs -M -s /sbin/nologin & useradd nginx -M -s /sbin/nologinstorage 192.168.72.138libfastcommonfastdfsNginx(用作接受請求)fastdfs-nginx-moduleuseradd fastdfs -M -s /sbin/nologin & useradd nginx -M -s /sbin/nologin192.168.72.139libfastcommonfastdfsNginx(用作接受請求)fastdfs-nginx-moduleuseradd fastdfs -M -s /sbin/nologin & useradd nginx -M -s /sbin/nologin
二. 使用余慶的安裝包, 進行 libfastcommon 和 FastDFS 安裝1. cd /usr/local/src/2. unzip libfastcommon-master.zip3. cd libfastcommon-master4. ./make.sh5. ./make.sh install6. cd ..7. tar xzf FastDFS_v5.05.tar.gz8. cd FastDFS9. ./make.sh10. ./make.sh install
11.相關文件的下載鏈接:
nginx-1.7.8.tar.gz
libfastcommon-master.zip
fastdfs-nginx-module_v1.16.tar.gz
FastDFS_v5.05.tar.gz
三. 安裝 Nginx1.在 tracker 上安裝 Nginx#安裝 Nginx 依賴包, 可以先配置Nginx,如果配置不成功再安裝依賴包1. yum install –y openssl-devel pcre-devel zlib-devel2. cd /usr/local/src/3. tar xf nginx-1.7.8.tar.gz4. cd nginx-1.7.85. ./configure --user=nginx --group=nginx --PRefix=/usr/local/nginx #配置Nginx6. make && make install2.在 storage 上安裝 Nginx#安裝 Nginx 依賴包, 可以先配置Nginx,如果配置不成功再安裝依賴包1. yum install –y openssl-devel pcre-devel zlib-devel2. cd /usr/local/src/ 3. tar xzf fastdfs-nginx-module_v1.16.tar.gz4.#默認prefix安裝路徑為/usr(可以從FastDFS下的make.sh中找到),需要刪除多余的/local路徑#需要修改 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/"5. tar xzf nginx-1.7.8.tar.gz6. cd nginx-1.7.87. ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --add-module=../fastdfs-nginx-module/src #配置Nginx8. make 9. 如果第7步不成功, 就執行yum groupinstall"Development Tools"ldd $(which /usr/local/nginx/sbin/nginx)10. make install11. #修改 Nginx 配置文件, vi /usr/local/nginx/conf/nginx.conf添加:location /group1/M00 {alias /home/data/fdfs/data;ngx_fastdfs_module;}12.使用linx命令把 FastDFS/conf 中的 anti-steal.jpg/http.conf/mie.types/storage-ids.conf 復制到 /etc/fdfs/使用linx命令把 fastdfs-nginx-module/src/mod_fastdfs.conf 復制到 /etc/fdfs/13. 啟動 Nginxcd /usr/local/nginx/sbin ~./nginx四. 配置 tracker 和 storage1. 配置 tracker (192.168.72.140)mkdir /home/data/fdfs -p#復制一個配置文件cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf#修改 base_path=/mnt/fastdfs_trackervim /etc/fdfs/tracker.conf使用linx命令把 FastDFS/conf 中的 anti-steal.jpg/http.conf/mie.types/storage-ids.conf 復制到 /etc/fdfs/#啟動 trackerfdfs_trackerd /etc/fdfs/tracker.conf#錯誤日志保存在:/mnt/fastdfs_tracker/logs/tracker.log配置 Nginx, 使用 tracker 上的 nginx 作反向代理user nginx nginx; //此處為已經建立好的用戶 和分組worker_processes 2;pid /usr/local/nginx/logs/nginx.pid;worker_rlimit_nofile 1024;events {use epoll; // epoll是linux內核為處理大批量文件描述符而作了改進的pollworker_connections 1024;}
http {include mime.types;default_type application/octet-stream;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 /usr/local/nginx/logs/access.log main;upstream server_g1{server 192.168.72; //這里配置的是storage的IP 可以配多臺server 192.168.80.102:80;}
server {listen 80;server_name localhost;location /g1 {proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://server_g1;}}}
2. 配置 storage (192.168.72.138 和 192.168.72.139)mkdir /home/data/fdfs -p#復制一個配置文件cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf#修改配置 /etc/fdfs/storage.confgroup_name=group1port=23000 #端口號, 注意,每個組內的port要使用同一個端口號base_path=/home/data/fdfsstore_path0=/home/data/fdfstracker_server=192.168.72.140:22122修改 /etc/fdfs/mod_fastdfs.conf base_path=/home/data/fdfstracker_server=192.168.72.140:22122 group_name=group1 url_have_group_name = true store_path0=/home/data/fdfsln -s /home/data/fdfs/data /home/data/fdfs/data/M00 #啟動 storage fdfs_storaged /etc/fdfs/storage.conf #錯誤日志保存在:/mnt/fastdfs_storage_info/logs/storage.logvim /etc/rc.d/rc.local添加一行fdfs_storaged /etc/fdfs/storage.conf3. 如果同一臺服務器上配置添加一個組, 需要在 /etc/fdfs/mod_fastdfs.conf 增加一個 group 節如:[group2]group_name=g2storage_server_port=23001store_path_count=1store_path0=/home/data/fdfs_g24. /etc/fdfs/clinet.conf 里面一般配置 tracker_server=192.168.72.140:22122 和 load_fdfs_parameters_from_tracker=true 就可以了5. 啟動啟動 tracker: fdfs_trackerd /etc/fdfs/tracker.conf/usr/local/nginx/sbin/nginxiptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT && /etc/init.d/iptables save逐個啟動 storage: fdfs_storaged /etc/fdfs/storage/usr/local/nginx/sbin/nginxiptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT && /etc/init.d/iptables save6.添加啟動項:修改 /etc/rc.d/rc.local,添加內容:192.168.72.140: fdfs_trackerd /etc/fdfs/tracker.conf192.168.72.138: fdfs_storaged /etc/fdfs/storage.conffdfs_storaged /etc/fdfs/storage_g2.conf 192.168.72.139: fdfs_storaged /etc/fdfs/storage.conf192.168.72.141: fdfs_storaged /etc/fdfs/storage.conf#調整防火墻的規則,開放端口:23000 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 23001 -j ACCEPT && /etc/init.d/iptables save 五. 測試1. 在 tracker(192.168.72.140) 上啟動 tracker,nginxservice fdfs_trackerd start/usr/local/nginx/sbin/nginx
2. 在 storage(192.168.72.138, 139)上面分別啟動storage和nginxservice fdfs_storaged start/usr/local/nginx/sbin/nginx
3. 在tracker上配置一個clientvim /etc/fdfs/client.confbase_path=/mnt/fastdfs_trackertracker_server=192.168.70.140:22122
4. 查看集群詳細fdfs_monitor /etc/fdfs/client.conf5. 測上傳fdfs_upload_file /etc/fdfs/client.conf aa.jpg 6. 通過瀏覽器訪問http://192.168.80.101/g1/M00/AC/2F/wKgKDVMppoGAMCFNAAIFvJcyojY165.jpg
http://192.168.80.102/g1/M00/AC/2F/wKgKDVMppoGAMCFNAAIFvJcyojY165.jpg六. 命令詳解1.Tracker server啟動/usr/local/FastDFS/bin/fdfs_trackerd /etc/fdfs/tracker.conf2. Storage server啟動/usr/local/FastDFS/bin/fdfs_storaged /etc/fdfs/storage.conf
3. 查看是否啟動成功netstat -ntpl | grep fdfs
4. Storage server 上面啟動 Nginxcd /usr/local/nginx/sbin~./nginx5. 不打開直接下載文件:Nginx.conflocation/ {if($request_filename ~* ^.*?/.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|PPT|pptx)$){ add_headerContent-Disposition: 'attachment;';}}#調整防火墻的規則,開放端口:22122 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT && /etc/init.d/iptables save #調整防火墻的規則,開放端口:23000 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT && /etc/init.d/iptables save #啟動tracker進程: /etc/init.d/fdfs_trackerd start #查看trackerd狀態: /etc/init.d/fdfs_trackerd status #查看trackerd監聽的端口: netstat -plantu | grep tracker #啟動Storage進程: /etc/init.d/fdfs_storaged start #查看Storage進程: ps -ef | grep storaged | grep -v grep七. 到此安裝結束IP配置文件base_pathstore_path0port啟動命令group_nametracker_servertrackerCentOS_64_1192.168.72.140/etc/fdfs/tracker.conf /home/data/fdfs/home/data/fdfs22122fdfs_storaged 配置文件storage CentOS_64_2192.168.72.138/etc/fdfs/storage.conf /home/data/fdfs/home/data/fdfs23000fdfs_storaged 配置文件group1192.168.70.140:22122CentOS_64_4192.168.72.139/etc/fdfs/storage.conf /home/data/fdfs/home/data/fdfs23000fdfs_storaged 配置文件group1192.168.70.140:22122CentOS_64_2192.168.72.138/etc/fdfs/storage_g2.conf /home/data/fdfs_g2/home/data/fdfs_g223001fdfs_storaged 配置文件g2192.168.70.140:22122CentOS_64_5192.168.72.141/etc/fdfs/storage.conf /home/data/fdfs/home/data/fdfs23001fdfs_storaged 配置文件g2192.168.70.140:22122Nginx 安裝在各自機器的目錄:/usr/local/nginx/
八. 其它將tracker交給service管理并且設置開機啟動echo fdfs_trackerd /etc/fdfs/tracker.conf >> /etc/rc.d/rc.local去掉 #號注釋grep -v '^#' /etc/fdfs/tracker.conf |grep -v '^$' > a.txt
user nginx nginx; //此處為已經建立好的用戶 和分組worker_processes 2;pid /usr/local/nginx/logs/nginx.pid;worker_rlimit_nofile 1024;events {use epoll; // epoll是Linux內核為處理大批量文件描述符而作了改進的pollworker_connections 1024;}
http {include mime.types;default_type application/octet-stream;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 /usr/local/nginx/logs/access.log main;upstream server_g1{server 192.168.80.101:80; //這里配置的是storage的IP 可以配多臺server 192.168.80.102:80;}
server {listen 80;server_name localhost;location /g1 {proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://server_g1;}}}
本機復制到遠程機器scp [可選參數] file_source file_target -r 復制目錄scp /usr/java/jdk1.6.0_22/jre/lib/fonts/fallback/* root@192.168.4.29:/usr/java/jdk16/jre/lib/fonts/fallback/ 從遠程機器復制到本機scp 本地用戶名 @IP 地址 : 文件名 1 遠程用戶名 @IP 地址 : 文件名 2
大家如果在配置過程中有疑問,可以問我 QQ: wujialongcn@126.com
新聞熱點
疑難解答