久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

騰訊云服務器如何搭建圖片服務器?

323次閱讀
沒有評論

共計 6613 個字符,預計需要花費 17 分鐘才能閱讀完成。

騰訊云服務器如何搭建圖片服務器?購買云服務器之后,搭建圖片服務器的方法有很多,對于技術熟練的用戶,可以選擇自助適合的環境(如:nginx、fastfds、mysql 等)網上雖然有不少資料,但是很多教程寫的并不完整,照著去做的時候會出現各種各樣的問題。

在網上也搜不出個解決方式來, 其實主要都是版本的問題,之前一些版本引用的庫位置有問題, 需要自己修改, 我們還是自己整理一遍整個流程,用起來才放心。安裝的時候請按照相同的版本安裝,之前的一些版本確實是會出現不少問題的。

點擊進入:騰訊云服務器最新優惠活動

系統: Centos 7

環境和依賴

按照后面標注的方式下載或者安裝好需要的依賴

系統: centos7
yum install -y  gcc-c++  #需要依賴 gcc
yum install -y  pcre  #用于支持 rewrite 模塊   pcre-8.32-17

yum  install -y  libevent  #FastDFS 依賴 libevent 庫 libevent-2.0.21-4.el7.x86_64

yum  install -y  zlib zlib-devel    #用于支持 gzip 模塊 zlib-1.2.7-17.el7.x86_64

libfastcommon-master.zip   #libfastcommon 包含了 FastDFS 運行所需要的一些基礎庫。https://github.com/happyfish100/libfastcommon/releases

fastdfs-nginx-module-master.zip  # 
https://codeload.github.com/happyfish100/fastdfs-nginx-module/zip/master

FastDFS 版本:fastdfs-5.11.zip  
#https://github.com/happyfish100/fastdfs/archive/V5.11.zip

Nginx 版本:nginx-1.14.tar.gz : #官網下載: http://nginx.org/en/download.html

安裝依賴

可以 yum 安裝的先直接 yum 安裝

將所有下載好依賴上傳至服務器 /download 目錄

安裝 libfastcommon

unzip libfastcommon-1.0.39.zip 
 mv libfastcommon-1.0.39 /usr/local/libfastcommon
cd /usr/local/libfastcommon/
./make.sh           #編譯
./make.sh install   #安裝
# 檢查確認/usr/lib64  和 /usr/lib 目錄下都生成了 libfastcommon.so 
(有些版本可能/usr/lib 下不會生成)
ls /usr/lib64  | grep libfastcommon.so  
ls /usr/lib  | grep libfastcommon.so

安裝 tracker

FastDFS 由跟蹤服務器(tracker server)、存儲服務器(storage server)和客戶端組成,

fastdfs 的 tracker 和 storage 其實用的是同一個服務, 只是配置文件不同

Tracker 是 FastDFS 的協調者,負責管理所有的 storage server 和 group

storage server 負責存儲服務

cd /download
unzip  fastdfs-5.11.zip
 mv fastdfs-5.11 /usr/local/FastDFS
cd /usr/local/FastDFS/
./make.sh && ./make.sh install  #編譯之后接著進行安裝
#確認安裝成功 , 沒有報錯后 , 拷貝配置文件到/etc/fdfs
cp /usr/local/FastDFS/conf/* /etc/fdfs/
#, 進入 /etc/fdfs 目錄, 如果沒有 tracker.conf 就拷貝一份 tracker.conf.sample 去掉 sample
cp tracker.conf.sample track.conf

配置 tracker.conf ;

vi track.conf  # 修改以下配置
#===============
base_path=/home/fastdfs  #基礎目錄 , 以后的 data 和日志目錄都會放在此目錄下
http.server_port=80 #配置 http 服務端口 , 這個端口跟后面 nginx 的監聽端口對應

創建目錄(目錄可能不存在)

mkdir /home/fastdfs

啟動 tracker,運行如下命令:

/usr/bin/fdfs_trackerd /etc/fdfs/track.conf restart
#檢查是否啟動成功 : 默認端口22122
ps -ef | grep fdfs  
#檢查/home/fastdfs 下是否生成 data / logs 兩個目錄
ls  /home/fastdfs/

安裝 storage

fastdfs 的 tracker 和 storage 其實用的是同一個服務, 只是配置文件不同, 我們只需要使用 storage 的配置文件啟動 fastdfs 即是 storage 服務

cd /etc/fdfs 
#如果沒有 storage.conf  拷貝一份 storage.conf.sample 命名為 storage.conf
cp storage.conf.sample  storage.conf
#配置 storage.conf
vi storage.conf  #修改如下配置
#===========================
group_name=group1 #配置組名 , 同一個組的 storage 互為備份
base_path=/home/fastdfs #基礎目錄
#store 存放文件的位置(store_path), 可以配置多個, 記得創建路徑
store_path0=/home/fdfs_storage 
#如果有多個掛載磁盤則定義多個 store_path,如下
#store_path1=.....
#store_path2=......

#配置 tracker 服務器 :IP, 阿里云服務器如果需要外部訪問請配置公網 ip, 不要使用私有 ip
tracker_server=192.168.112.130:22122
#如果有多個 tracker 則配置多個 tracker
#tracker_server=192.168.112.131:22122
#配置 http 端口
http.server_port=80
#=====================
#創建 /home/fdfs_storage 目錄
mkdir -p /home/fdfs_storage
#啟動 storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
#查看啟動是否成功
fdfs_monitor /etc/fdfs/storage.conf   #查看 fdfs 狀態
ps -ef | grep fdfs
#查看目錄是否創建 ,/home/fdfs_storage/data 應該會自動生成256 個文件夾
ls   /home/fdfs_storage/data

測試上傳文件

fastdfs 自帶了測試客戶端, 我們可以使用它測試搭建是否成功

cd /etc/fdfs
cp client.conf.sample  client.conf
vim client.conf  #修改如下配置
#=================
base_path=/home/fastdfs
tracker_server=192.168.112.130:22122
#===============
#準備一張圖片進行測試
/usr/bin/fdfs_test /etc/fdfs/client.conf upload  /download/123.jpg
#一切正常的話會返回圖片地址等信息
example file url: http://192.168.112.130/group1/M00/00/00/wKhwgltd_uyAZSPfAAJHNmHqPh0482_big.jpg
#檢查文件是否存在 ( 文件名被存放在 /home/fdfs_storage/data/00/00 對應的目錄中 ), 如果存在即是保存  OK,此時還無法使用 http 下載
cd  /home/fdfs_storage/data/00/00  #查看是否存在 wKhwgltd_uyAZSPfAAJHNmHqPh0482_big.jpg

FastDFS 和 Nginx 整合

單獨的 Fastdfs 對 http 支持不好, 所以作為圖片服務器, 我們一般都會整合 Nginx 來支持圖片的 http 訪問

# 解壓 fastdfs-nginx-module 到 /usr/local 目錄下;cd /download
unzip  fastdfs-nginx-module-master.zip 
mv fastdfs-nginx-module-master  /usr/local/fastdfs-nginx-module
cd /usr/local/fastdfs-nginx-module/src

修改 config 文件,

# 將文件中的所有 /usr/local/ 路徑改為 /usr/ , 
#如果后面步驟中編譯 nginx 報錯把下面兩項做以下修改
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

拷貝配置文件到 /etc/fdfs

cp mod_fastdfs.conf  /etc/fdfs/
 #修改 /etc/fdfs/mod_fastdfs.conf;vi /etc/fdfs/mod_fastdfs.conf
#======修改以下內容========
base_path=/home/fastdfs  #保存日志的路徑
tracker_server=192.168.112.130:22122  #track_server 配置的服務端口
url_have_group_name=true        #url 中是否包含 group 名稱
store_path0=/home/fdfs_storage  #指定文件存儲路徑(必須和 storage.conf 配置相同)

檢查 /usr/lib 和 usr/lib64 下是否有 libfdfsclient.so

ls  /usr/lib | grep libfdfsclient.so
ls  /usr/lib64 | grep libfdfsclient.so

創建 nginx/client 目錄

mkdir -p /var/temp/nginx/client

安裝 nginx

tar -zxvf nginx-1.14.0.tar.gz -C /usr/local/

編譯 nginx, 加入 fastdfs 模塊, 如果之前裝過 nginx, 需要重新安裝

# 進入解壓目錄 , 日志目錄可自己定義, 主要是 add-modoule
cd /usr/local/nginx-1.14.0
#添加模塊
./configure \
--prefix=/usr/local/nginx \
--add-module=/usr/local/fastdfs-nginx-module/src

編譯并安裝

# 在 nginx1.14.0目錄下執行
make && make install

編譯后在 /usr/local 下生成 nginx 目錄

修改 nginx 配置文件

vi /usr/local/nginx/conf/nginx.conf
#======添加配置===========
 server {
              listen 80;
              server_name 192.168.112.130;
              location /group1/M00/ {
                  root /home/fdfs_storage/data;
                  ngx_fastdfs_module;
              }
         }

啟動 nginx

/usr/local/nginx/sbin/nginx 

#檢查是否啟動成功 , 不成功就去查看錯誤日志/var/log/nginx/error.log
ps -ef | grep nginx

關閉防火墻或者添加對應端口

systemctl stop firewalld.service

再次上傳一張圖片

/usr/bin/fdfs_test /etc/fdfs/client.conf upload  /download/123.jpg

得到一個地址

example file url: http://192.168.112.130/group1/M00/00/00/wKhwgltekE6AeekMAAJHNmHqPh0069_big.jpg

在瀏覽器中訪問該圖片:

http://192.168.112.130/group1/M00/00/00/wKhwgltekE6AeekMAAJHNmHqPh0069_big.jpg

如果能夠正常瀏覽圖片那就大功告成,

# 查看 nginx 日志可以看到訪問記錄
tail -f  -n 100 /var/log/nginx/access.log

PS: nginx fastfds 的安裝最坑的就是一些版本中動態鏈接的問題, 在使用之前一些版本的時候經常會出現各種問題, 如果確實需要使用之前的版本可能就需要自己去改一些動態鏈接的指向了, 如果沒有特別版本要求, 使用本文的版本是沒有問題的

項目中如何使用 fastdfs

使用方式比較簡單, 我們就直接拿來一個示例代碼了

導入依賴(也可以自己去 git 編譯一個 jar 包出來)

<dependency>
            <groupId>net.oschina.zcx7878</groupId>
            <artifactId>fastdfs-client-java</artifactId>
            <version>1.27.0.0</version>
        </dependency>

配置文件: fdfs.conf

# 連接 tracker 服務器超時時長
connect_timeout = 10
# socket 連接超時時長
network_timeout = 30
# 文件內容編碼
charset = UTF-8
# tracker 服務器端口
http.tracker_http_port = 80
http.anti_steal_token = no
#密碼
http.secret_key = 123456
# tracker 服務器 IP 和端口(可以寫多個)tracker_server = 192.168.58.128:22122

測試代碼

public class FastdfsTest {

    @Test
    public void testUpload() throws Exception {

        //1、把 FastDFS 提供的 jar 包添加到工程中
        //2、初始化全局配置。加載一個配置文件。
        ClientGlobal.init("F:\\wolf-shop\\src\\main\\resources\\fdfs.conf");
        //3、創建一個 TrackerClient 對象。
        TrackerClient trackerClient = new TrackerClient();

        //4、創建一個 TrackerServer 對象。
        TrackerServer trackerServer = trackerClient.getConnection();
        //5、聲明一個 StorageServer 對象,null。
        StorageServer storageServer = null;
        //6、獲得 StorageClient 對象。
        StorageClient storageClient = new StorageClient(trackerServer, storageServer);

        //7、直接調用 StorageClient 對象方法上傳文件即可。
        String[] result = storageClient.upload_file("F:\\redis_demo\\src\\main\\resources\\logo.png", "png", null);
        StringBuilder sb = new StringBuilder("http://192.168.112.130/");
        sb.append(result[0]).append("/").append(result[1]);
        System.out.println("圖片訪問地址:"+sb.toString());
    }
}

項目中根據自己的實際使用情況抽取一個工具類用起來就方便了

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-06-15發表,共計6613字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 银川市| 宜阳县| 凤冈县| 金塔县| 项城市| 巴彦淖尔市| 大足县| 祁东县| 涟源市| 徐州市| 洮南市| 二手房| 天峻县| 光泽县| 商都县| 大余县| 广河县| 调兵山市| 芦山县| 白水县| 阳信县| 双桥区| 浮山县| 新安县| 资溪县| 汽车| 昭平县| 贡觉县| 林甸县| 大渡口区| 青铜峡市| 池州市| 平舆县| 通榆县| 河东区| 怀集县| 黄山市| 新野县| 怀安县| 静海县| 武鸣县|