目錄
前言
1. 本地搭建FastDFS文件系統(tǒng)
1.1 環(huán)境安裝
1.2 安裝libfastcommon
1.3 安裝FastDFS
1.4 配置Tracker
1.5 配置Storage
1.6 測試上傳下載
1.7 與Nginx整合
1.8 安裝Nginx
1.9 配置Nginx
2. 局域網(wǎng)測試訪問FastDFS
3. 安裝cpolar內(nèi)網(wǎng)穿透
4. 配置公網(wǎng)訪問地址
5. 固定公網(wǎng)地址
5.1 保留二級子域名
5.2 配置二級子域名
6. 測試訪問固定二級子域名
轉(zhuǎn)載自cpolar極點云的文章:FastDFS與Nginx結(jié)合搭建文件服務(wù)器,并內(nèi)網(wǎng)穿透實現(xiàn)公網(wǎng)訪問
前言
FastDFS是一個開源的輕量級分布式文件系統(tǒng),它對文件進(jìn)行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負(fù)載均衡的問題。特別適合以文件為載體的在線服務(wù),如相冊網(wǎng)站、視頻網(wǎng)站等等。
FastDFS為互聯(lián)網(wǎng)量身定制,充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制,并注重高可用、高性能等指標(biāo),使用FastDFS很容易搭建一套高性能的文件服務(wù)器集群提供文件上傳、下載等服務(wù)。
配備一臺公網(wǎng)服務(wù)器作為文件上傳下載,花費(fèi)資源和開銷比較大,如果在本地搭建FastDFS服務(wù),只把上傳后的文件通過cpolar內(nèi)網(wǎng)端口轉(zhuǎn)發(fā)工具將文件配置可通過互聯(lián)網(wǎng)訪問,極大了減少服務(wù)器費(fèi)用及開銷,本文介紹詳細(xì)搭建FastDFS教程,并結(jié)合Nginx+cpolar工具實現(xiàn)遠(yuǎn)程訪問文件。
1. 本地搭建FastDFS文件系統(tǒng)
1.1 環(huán)境安裝
由于fastDFS是由c語言編寫,所以我們需要安裝gcc
yum -y install gcc-c++
FastDFS依賴libevent庫
,需要安裝。執(zhí)行如下命令:
yum -y install libevent
1.2 安裝libfastcommon
進(jìn)入local目錄
cd /usr/local
libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS運(yùn)行所需要的一些基礎(chǔ)庫。點擊下面鏈接即可獲取:
Release V1.0.7 · happyfish100/libfastcommon · GitHub
獲取后,上傳到local
目錄下
解壓libfastcommon
tar -zxvf libfastcommonV1.0.7.tar.gz
進(jìn)入解壓文件夾
cd libfastcommon-1.0.7/
編譯
./make.sh
安裝
./make.sh install
libfastcommon安裝好后會自動將庫文件拷貝至/usr/lib64
下,由于FastDFS程序引用usr/lib目錄所以需要將/usr/lib64下的庫文件拷貝至/usr/lib下。
cp /usr/lib64/libfastcommon.so /usr/lib/
1.3 安裝FastDFS
進(jìn)入local目錄
cd /usr/local
點擊下列地址,可獲取下載FastDFS_v5.05.tar.gz文件:
FastDFS download | SourceForge.net
下載文件后,上傳FastDFS_v5.05.tar.gz
到/usr/local/
解壓文件
tar -zxvf FastDFS_v5.05.tar.gz
進(jìn)入解壓文件夾
cd FastDFS
編譯
./make.sh
安裝
./make.sh install
安裝成功后,將安裝目錄下的conf下的文件拷貝到/etc/fdfs/
下
cd conf/
拷貝
cp * /etc/fdfs/
1.4 配置Tracker
接下來進(jìn)行配置,安裝成功后進(jìn)入/etc/fdfs
目錄
cd /etc/fdfs/
修改tracker.conf
vim tracker.conf
把base_path=/home/yuqing/fastdfs
改為base_path=/home/fastdfs
編輯后保存退出,然后創(chuàng)建一個對應(yīng)的fastdfs文件夾
mkdir /home/fastdfs
然后啟動
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
設(shè)置開機(jī)啟動
vim /etc/rc.d/rc.local
將運(yùn)行命令行添加進(jìn)文件
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
1.5 配置Storage
進(jìn)入/etc/fdfs目錄
cd /etc/fdfs
修改storage.conf
vim storage.conf
把base_path=/home/yuqing/fastdfs
改為base_path=/home/fastdfs
把store_path0=/home/yuqing/fastdfs
改為store_path0=/home/fastdfs/fdfs_storage
繼續(xù)修改,設(shè)置tracker服務(wù)器:IP,tracker_server=Linux局域網(wǎng)ip:22122 ,設(shè)置好后保存退出
創(chuàng)建對應(yīng)fdfs_storage文件夾
mkdir /home/fastdfs/fdfs_storage
然后啟動
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
設(shè)置開機(jī)自動啟動
vim /etc/rc.d/rc.local
將運(yùn)行命令行添加到文件,然后保存
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
1.6 測試上傳下載
FastDFS安裝成功可通過/usr/bin/fdfs_test命令測試上傳、下載等操作。
修改/etc/fdfs/client.conf
vim /etc/fdfs/client.conf
修改如下內(nèi)容,然后保存:
base_path=/home/fastdfs tracker_server=Linux局域網(wǎng)ip:22122
接下來測試上傳文件,這里上傳了一張圖片到/usr/local
目錄下,作為測試使用
FastDFS上傳文件使用格式:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload+ 上傳文件的路徑
然后按照格式,測試將test23.png圖片上傳到FastDFS中
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/test23.png
執(zhí)行后,我們可以看到返回地址信息,表示成功,但是目前還訪問不了,需要結(jié)合Nginx做訪問下載
1.7 與Nginx整合
點擊下載下面鏈接下載fastdfs-nginx-module_v1.16:
Download fastdfs-nginx-module_v1.16.tar.gz (FastDFS)
進(jìn)入 /usr/local/文件夾下
cd /usr/local/
上傳fastdfs-nginx-module_v1.16.tar.gz
解壓fastdfs-nginx-module_v1.16.tar.gz
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
進(jìn)入src,然后編輯配置文件
cd fastdfs-nginx-module/src/
修改config文件
vim config
修改這三個位置,將里面原本是/usr/local/的路徑改為/usr/,然后保存退出
然后將FastDFS-nginx-module/src下的mod_FastDFS.conf拷貝至/etc/fdfs/下
cp mod_fastdfs.conf /etc/fdfs/
修改mod_FastDFS.conf的內(nèi)容:
vim /etc/fdfs/mod_fastdfs.conf
修改內(nèi)容如下:
base_path=/home/fastdfs
tracker_server=Linux局域網(wǎng)ip地址:22122
url_have_group_name=true #url中包含group名稱
store_path0=/home/fastdfs/fdfs_storage #指定文件存儲路徑
接下來將libfdfsclient.so拷貝至/usr/lib下
cp /usr/lib64/libfdfsclient.so /usr/lib/
創(chuàng)建nginx/client目錄即可
mkdir -p /var/temp/nginx/client
1.8 安裝Nginx
首先安裝系列環(huán)境
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
然后點擊下載Nginx包:
nginx-1.16.1.tar.gz
上傳到root目錄下
解壓,并進(jìn)入解壓文件夾
tar -zxvf nginx-1.16.1.tar.gz && cd nginx-1.16.
添加FastDFS-nginx-module模塊,執(zhí)行以下命令:
./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi \ --add-module=/usr/local/fastdfs-nginx-module/src
然后編譯
make
安裝
make install
1.9 配置Nginx
修改Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
添加server,添加后保存退出:
server { listen 8089;#為了防止80端口,我們改成8089 server_name 192.168.59.133;#這里需要使用你本機(jī)的局域網(wǎng)ip location /group1/M00/{ ngx_fastdfs_module; } }
啟動Nginx
/usr/local/nginx/sbin/nginx
如果啟動nginx出現(xiàn)以下錯誤:
nginx: [emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)
可以執(zhí)行如下命令,然后再次啟動:
mkdir /var/run/nginx
設(shè)置開機(jī)自動啟動。
vim /etc/rc.d/rc.local
將運(yùn)行命令行添加進(jìn)文件,然后保存退出:
/usr/local/nginx/sbin/nginx
關(guān)閉防火墻
service iptables stop
設(shè)置防火墻不自動啟動
chkconfig iptables off
2. 局域網(wǎng)測試訪問FastDFS
然后按照格式,測試將上面我們上傳的test23.png圖片上傳到FastDFS中
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/test23.png
執(zhí)行后,我們可以看到返回地址信息,表示成功
然后使用上面的地址,在瀏覽器訪問,即可看到我們上傳的圖片,fastDFS搭建完成
3. 安裝cpolar內(nèi)網(wǎng)穿透
上面我們在本地Linux虛擬機(jī)安裝了fastDFS分布式文件服務(wù),下面我們安裝cpolar內(nèi)網(wǎng)穿透工具,通過cpolar的http公網(wǎng)地址,我們可以很容易遠(yuǎn)程也可以訪問fastDFS里面上傳的文件,而無需自己注冊域名購買云服務(wù)器.下面是安裝cpolar內(nèi)網(wǎng)穿透步驟
cpolar官網(wǎng):cpolar - 安全的內(nèi)網(wǎng)穿透工具
-
使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
-
token認(rèn)證
登錄cpolar官網(wǎng)后臺,點擊左側(cè)的驗證,查看自己的認(rèn)證token,之后將token貼在命令行里:
cpolar authtoken xxxxxxx
-
向系統(tǒng)添加服務(wù)
sudo systemctl enable cpolar
-
啟動cpolar服務(wù)
sudo systemctl start cpolar
4. 配置公網(wǎng)訪問地址
成功啟動cpolar服務(wù)后,我們在瀏覽器上訪問Linux局域網(wǎng)ip地址+9200端口,登錄cpolar web UI管理界面。
登錄成功后,點擊左側(cè)儀表盤的隧道管理——創(chuàng)建隧道,創(chuàng)建一個http協(xié)議的隧道指向上面設(shè)置的Nginx8089端口:
-
隧道名稱:可自定義,注意不要與已有的隧道名稱重復(fù)
-
協(xié)議:http
-
本地地址:8089
-
域名類型:免費(fèi)選擇隨機(jī)域名
-
地區(qū):選擇China VIP
點擊創(chuàng)建
然后打開在線隧道列表,查看并且復(fù)制公網(wǎng)地址
然后打開瀏覽器,輸入公網(wǎng)地址,訪問我們上傳在fastDFS里的文件,即可遠(yuǎn)程訪問成功
5. 固定公網(wǎng)地址
由于剛剛創(chuàng)建隧道使用的是隨機(jī)臨時地址,該地址會在24小時內(nèi)發(fā)生變化,為了長期和更穩(wěn)定遠(yuǎn)程訪問,我們接下來將這個公網(wǎng)地址配置為固定的,
5.1 保留二級子域名
需升級至基礎(chǔ)套餐或以上才支持配置二級子域名,如有下載文件的需求,可以升級更高套餐以便獲取更大的帶寬,提高下載速度
登錄cpolar官網(wǎng)后臺,點擊左側(cè)儀表盤的預(yù)留
,找到保留二級子域名
,為http隧道保留一個二級子域名。
-
地區(qū):選擇服務(wù)器地區(qū)
-
名稱:填寫您想要保留的二級子域名(可自定義)
-
描述:即備注,可自定義填寫
本例保留一個名稱為fasttest
的二級子域名。子域名保留成功后,我們將子域名復(fù)制下來,接下來需要將其配置到隧道中去。
5.2 配置二級子域名
登錄cpolar web ui管理界面。點擊左側(cè)儀表盤的隧道管理
——隧道列表
,找到需要配置二級子域名的隧道,點擊右側(cè)的編輯
修改隧道信息,將二級子域名配置到隧道中:
-
域名類型:改為選擇
二級子域名
-
Sub Domain:填寫我們剛剛所保留的二級子域名(本例為
fasttest
)
修改完成后,點擊更新
隧道更新成功后,點擊左側(cè)儀表盤的狀態(tài)
——在線隧道列表
,可以看到隧道的公網(wǎng)地址,已經(jīng)更新為二級子域名了,將公網(wǎng)地址復(fù)制下來。
6. 測試訪問固定二級子域名
我們來測試一下訪問配置成功的二級子域名,打開瀏覽器,輸入公網(wǎng)地址加資源路徑,訪問我們上傳在fastDFS里的文件,出現(xiàn)圖片即可遠(yuǎn)程訪問成功。現(xiàn)在,我們?nèi)W(wǎng)唯一的私有二級子域名,就創(chuàng)建好了。文章來源:http://www.zghlxwxcb.cn/news/detail-438003.html
而且這個地址也不會再隨機(jī)變化,他是固定不變的,只要保持隧道在線,我們在外就可以通過這個公網(wǎng)地址,隨時隨地遠(yuǎn)程訪問,無需公網(wǎng)IP,也不用設(shè)置路由器。文章來源地址http://www.zghlxwxcb.cn/news/detail-438003.html
到了這里,關(guān)于從零開始搭建高效的文件服務(wù)器:FastDFS與Nginx完美結(jié)合,內(nèi)網(wǎng)穿透實現(xiàn)公網(wǎng)訪問的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!