fastDFS和nginx配置

回到家目錄
cd ~
新建packages目錄(用于存放 下載的包)
mkdir packages

下載libfastcommon蜻底、fastdfs、fastdfs-nginx-module:

# -S print server response
# -O write documents to file
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz -SO libfastcommon.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -SO fastdfs.tar.gz
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz -SO fastdfs-nginx-module.tar.gz
# 解壓
tar -xf xxx.tar.gz
安裝 libfastcommon
# 切到解壓目錄
cd ~/packages/libfastcommon-1.0.39
./make.sh
./make.sh install
# 最好本機(jī)執(zhí)行make聘鳞。遠(yuǎn)端ssh 執(zhí)行薄辅,可能會報(bào)錯(cuò)
安裝 fastdfs
cd ~/packages/fastdfs-5.11
./make.sh
./make.sh install

安裝好后,程序是在/usr/bin目錄下:

$ which fdfs_trackerd
/usr/bin/fdfs_trackerd

而配置文件是在/etc/fdfs目錄下:

# 但是這些配置文件是不全的抠璃,而且都是模板
$ ls /etc/fdfs
client.conf.sample storage_ids.conf.sample  tracker.conf.sample storage.conf.sample

但是這些配置文件是不全的站楚,而且都是模板,需要所以需要拷貝并重命名 模板文件tracker.conf.sample , storage.conf.sample, client.conf.sample搏嗡,并修改它們的配置:

sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
修改配置

在家目錄下新建tracker, storage, client目錄:

$ cd ~
$ mkdir tracker
$ mkdir storage
$ mkdir client
sudo vi /etc/fdfs/tracker.conf:
# the tracker server port
port=22122

# the base path to store data and log files
base_path=/home/python/fastdfs/tracker

# HTTP port on this tracker server
http.server_port=8888
sudo vi /etc/fdfs/storage.conf:
# storage所屬的組
group_name=group1

# the storage server port
port=23000


# tracker服務(wù)器窿春,雖然是同一臺機(jī)器上拉一,但是不能寫127.0.0.1。這項(xiàng)配置可以出現(xiàn)一次或多次
tracker_server=10.211.55.15:22122

# the port of the web server on this storage server
http.server_port=8888

# the base path to store data and log files
base_path=/home/python/fastdfs/storage

# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
store_path0=/home/python/fastdfs/storage
#store_path1=/home/caibh/fdfs2




sudo vi /etc/fdfs/client.conf:
# the base path to store log files
base_path=/home/python/fastdfs/tracker

# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
tracker_server=10.211.55.15:22122

#HTTP settings
http.tracker_server_port=8888
# 切到~/packages/fastdfs-nginx-module-1.20目錄:
$ cd ~/packages/fastdfs-nginx-module-1.20

# 拷貝fastdfs-nginx-module-master/src下的mod_fastdfs.conf 到 /etc/fdfs/mod_fastdfs.conf
$ sudo cp src/mod_fastdfs.conf  /etc/fdfs/mod_fastdfs.conf
sudo vim /etc/fdfs/mod_fastdfs.conf:

connect_timeout=10

# the base path to store log files
base_path=/tmp

# FastDFS tracker_server 
# valid only when load_fdfs_parameters_from_tracker is true
tracker_server=自己虛擬機(jī)的ip地址(10.211.55.15):22122

# the port of the local storage server
# the default value is 23000
storage_server_port=23000

# the group name of the local storage server
group_name=group1

# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
# must same as storage.conf
store_path0=/home/python/fastdfs/storage
#store_path1=/home/yuqing/fastdfs1



url_have_group_name=true

配置過程中有幾點(diǎn)要注意:

  • 確保各種配置文件之間引用的端口一直旧乞。比如:
mod_fastdfs.conf文件中tracker_server的端口應(yīng)該跟tracker.conf中port一致蔚润;
mod_fastdfs.conf文件中storage_server_port的端口應(yīng)該跟跟storage.conf中port一致;
  • 其他配置文件(anti-steal.jpg http.conf mime.types storage_ids.conf)雖然不用修改尺栖,但是fastdfs-nginx-module模塊會用到嫡纠。因此需要復(fù)制fastdfs-nginx-module/src/下的anti-steal.jpg http.conf mime.types storage_ids.conf 到 /etc/fdfs目錄下。

  • 上面的配置 有錯(cuò)誤的地方:除了22122延赌,23000這兩個(gè)端口除盏,其它(以http開頭的端口,諸如http.server_port, http.tracker_server_port)端口要一致(同時(shí)皮胡,也要和/usr/local/nginx/conf/nginx.conf 中的server - listen 端口一致)痴颊。

  • /usr/local/nginx/conf/nginx.conf中赏迟,要添加一行user root;(行尾要加上分號;), 來賦予nginx權(quán)限屡贺。


port端口設(shè)置 注意事項(xiàng)

注意事項(xiàng):上圖中(上圖中以開頭的配置項(xiàng), 實(shí)際配置過程 并不帶號,只是為了 著重強(qiáng)調(diào)這幾個(gè)配置項(xiàng)) 锌杀,以http開頭的端口配置 應(yīng)該 保持一致甩栈。

tracker.conf:
    port = 22122    # the tracker server port
    
    *http.server_port = 8888,(8080默認(rèn))   # HTTP port on this tracker server

storage.conf
    port = 23000    # the storage server port
    tracker_server=10.211.55.15:22122   # tracker server

    *http.server_port = 8888,(8888默認(rèn))   # the port of the web server on this storage server

client.conf 
    tracker_server=10.211.55.15:22122   # tracker server

    *http.tracker_server_port = 8888, (80默認(rèn))    # http settings
    
mod_fastdfs.conf
    tracker_server=10.211.55.15:22122   # FastDFS tracker_server

    storage_server_port=23000   # the port of the local storage server

nginx.conf 

    listen 8888  # ***應(yīng)該和上面的http端口 一致***。

啟動trackerstorage
# 啟動
$ fdfs_trackerd /etc/fdfs/tracker.conf start
$ fdfs_storaged /etc/fdfs/storage.conf start

# 停止
$ service fdfs_trackerd stop
$ fdfs_trackerd /etc/fdfs/tracker.conf stop

$ service fdfs_storaged stop
$ fdfs_storaged /etc/fdfs/storage.conf stop

# 查看fdfs_trackerd, fdfs_storaged是否存活
$ ps aux | grep fdfs
# 查看nginx是否存活
$ ps aux | grep nginx

# 查看日志
$ tail -n10 ~/fastdfs/tracker/logs/trackerd.log
$ tail -n10 ~/fastdfs/storage/logs/storaged.log
# 如果日志顯示有錯(cuò)誤信息糕再,需要根據(jù)信息來查找錯(cuò)誤原因
fdfs_test測試上傳
$ fdfs_test /etc/fdfs/client.conf upload ~/Downloads/logo_small.png

如果返回類似group1/M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg的文件id則說明文件上傳成功

安裝nginx
# 解壓縮 nginx-1.16.0.tar.gz
$ tar -xf nginx-1.16.0.tar.gz
# 進(jìn)入nginx-1.16.0目錄中
$ cd ~/packages/nginx-1.16.0

# --prefix表示 安裝路徑量没,--add-module表示 加入fastdfs-nginx-module-1.20模塊
$ sudo ./configure --prefix=/usr/local/nginx/ --add-module=/home/python/packages/fastdfs-nginx-module-1.20/src
################################
# 想要徹底刪除 `tar包安裝的nginx`,需要刪除--prefix目錄(即是 目錄/usr/local/nginx). 命令$ rm -rf /usr/local/nginx
################################

$ sudo make
$ sudo make install

# 執(zhí)行make時(shí)突想,可能會報(bào)錯(cuò)
Fatal error: can't create objs/addon/src/ngx_http_fastdfs_module.o: Permission denied
In file included from /home/xxxx/caibh/fdfs-package/fastdfs-nginx-module-1.20/src/common.c:26:0,
                 from /home/xxxx/caibh/fdfs-package/fastdfs-nginx-module-1.20/src/ngx_http_fastdfs_module.c:6:
/usr/include/fastdfs/fdfs_define.h:15:27: fatal error: common_define.h: No such file or directory

# 解決方法
# 修改fastdfs-nginx-module的src/config文件
$ cd /home/python/packages/fastdfs-nginx-module-1.20/src
$ sudo vi config
# 修改以下兩項(xiàng):
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
sudo vim /usr/local/nginx/conf/nginx.conf
###########################################
# 添加下面一行(這行 很重要)
user root;
###########################################

# 在http部分中添加配置信息如下:

# listen 8888:監(jiān)聽端口8888
# server_name localhost: 域名localhost
# location: 瀏覽器訪問路徑中含有`group[0-9]`時(shí)殴蹄,`nginx`會從`fastdfs`中 取文件
server {
            listen       8888;
            server_name  localhost;
            location ~/group[0-9]/ {
                root /home/python/fastdfs/storage/data;
                ngx_fastdfs_module;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
            root   html;
            }
        }
啟動nginx
# 啟動nginx
$ sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 停止nginx
$ sudo /usr/local/nginx/sbin/nginx -s stop

# 重新加載nginx
sudo /usr/local/nginx/sbin/nginx -s reload

# 檢查自己編譯出來的nginx能否運(yùn)行
$ sudo /usr/local/nginx/sbin/nginx -V
# nginx version: nginx/1.16.0

開放端口:

$ firewall-cmd --zone=public --add-port=8888/tcp --permanent   # 開放8888端口
$ firewall-cmd --zone=public --add-port=9270/tcp --permanent   # 開放9270端口

測試上傳圖片:

$ fdfs_test /etc/fdfs/client.conf upload ~/Downloads/logo_small.png


This is FastDFS client test program v5.11

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/ 
for more detail.

[2019-07-28 22:03:40] DEBUG - base_path=/home/python/fastdfs/client, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

tracker_query_storage_store_list_without_group: 
    server 1. group_name=, ip_addr=10.211.55.15, port=23000

group_name=group1, ip_addr=10.211.55.15, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/CtM3D109qzyAIOTRAAAX7nDuhUA387.png
source ip address: 10.211.55.15
file timestamp=2019-07-28 22:03:40
file size=6126
file crc32=1894679872
example file url: http://10.211.55.15:9270/group1/M00/00/00/CtM3D109qzyAIOTRAAAX7nDuhUA387.png
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/CtM3D109qzyAIOTRAAAX7nDuhUA387_big.png
source ip address: 10.211.55.15
file timestamp=2019-07-28 22:03:40
file size=6126
file crc32=1894679872
example file url: http://10.211.55.15:9270/group1/M00/00/00/CtM3D109qzyAIOTRAAAX7nDuhUA387_big.png

訪問:

http://10.211.55.15:9270/group1/M00/00/00/CtM3D109qzyAIOTRAAAX7nDuhUA387_big.png
# 如果能看到圖片則表示安裝fastdfs-nginx-module成功

本文參考了https://segmentfault.com/a/1190000018251300?utm_source=tag-newest

轉(zhuǎn)載請注明出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市猾担,隨后出現(xiàn)的幾起案子袭灯,更是在濱河造成了極大的恐慌,老刑警劉巖绑嘹,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稽荧,死亡現(xiàn)場離奇詭異,居然都是意外死亡工腋,警方通過查閱死者的電腦和手機(jī)姨丈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擅腰,“玉大人蟋恬,你說我怎么就攤上這事〕酶裕” “怎么了歼争?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我矾飞,道長一膨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任洒沦,我火速辦了婚禮豹绪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘申眼。我一直安慰自己瞒津,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布括尸。 她就那樣靜靜地躺著巷蚪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪濒翻。 梳的紋絲不亂的頭發(fā)上屁柏,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機(jī)與錄音有送,去河邊找鬼淌喻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛雀摘,可吹牛的內(nèi)容都是我干的裸删。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼阵赠,長吁一口氣:“原來是場噩夢啊……” “哼涯塔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起清蚀,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤匕荸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后轧铁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體每聪,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年齿风,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了药薯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡救斑,死狀恐怖童本,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脸候,我是刑警寧澤穷娱,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布绑蔫,位于F島的核電站,受9級特大地震影響泵额,放射性物質(zhì)發(fā)生泄漏配深。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一嫁盲、第九天 我趴在偏房一處隱蔽的房頂上張望篓叶。 院中可真熱鬧,春花似錦羞秤、人聲如沸缸托。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俐镐。三九已至,卻和暖如春哺哼,著一層夾襖步出監(jiān)牢的瞬間佩抹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工幸斥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留匹摇,地道東北人咬扇。 一個(gè)月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓甲葬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親懈贺。 傳聞我的和親對象是個(gè)殘疾皇子经窖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容