當前位置:
首頁 > 知識 > Nginx+FastDFS圖片伺服器搭建

Nginx+FastDFS圖片伺服器搭建

文章目錄

nginx的反向代理

反向代理模擬

複製兩個tomcat模擬反向代理

修改tomcat配置文件

無法訪問歡迎頁面【防火牆問題】

更改兩個index.jsp主頁

反向代理

負載均衡【新機器能者多勞】

啟動tomcat和nginx測試

執行./nginx -s reload找不到nginx.pid

FastDFS文件上傳下載

上傳流程

下載流程

搭建FastDFS步驟

複製壓縮包到伺服器

安裝libevent和perl

安裝libfastcommon

安裝Tracker

新建文件夾

配置tracker服務

啟動tracker服務

配置storage服務

啟動storage服務

測試服務

測試

搭建nginx提供http服務

訪問不了nginx

nginx的反向代理

反向代理應用於服務端,指定那台伺服器給客戶提供服務。

反向代理模擬

使用一台虛擬機,安裝一個nginx,多個tomcat來模擬反向代理。

複製兩個tomcat模擬反向代理

tomcat1是8080埠,使tomcat2用8081埠

修改tomcat配置文件

tomcat2/conf/server.sml

8085改成8086

8080改成8081

8009改成8010

無法訪問歡迎頁面【防火牆問題】

查看防火牆埠配置文件:

vi /etc/sysconfig/iptables

1

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

1

添加兩個可訪問埠:

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 8081 -j ACCEPT

1

2

3

保存,重啟防火牆

service iptables restart

1

更改兩個index.jsp主頁

在兩個tomcat的webapps/ROOT/index.jsp裡面加上-Port:8080或者-Port:8081以示區別:

<div id="asf-box">

<h1>${pageContext.servletContext.serverInfo}-Port:8080</h1>

</div>

1

2

3

<div id="asf-box">

<h1>${pageContext.servletContext.serverInfo}-Port:8081</h1>

</div>

1

2

3

反向代理

把原來/usr/local/nginx/conf/nginx.conf末尾的server改為如下:並添加upstream tomcats:

upstream tomcats{

server 192.168.52.129:8080 weight=2;

server 192.168.52.129:8081;

}

server {

listen 80;

server_name test.taotao.com;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

proxy_pass http://tomcats;

index index.html index.htm;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

負載均衡【新機器能者多勞】

通過權重weight分配服務概率,值越大分配概率越大。

啟動tomcat和nginx測試

啟動兩個tomcat

運行nginx程序

./nginx -s reload

1

執行./nginx -s reload找不到nginx.pid

nginx: [error] open() 「/var/run/nginx/nginx.pid」 failed (2: No such file or directory)

在sbin文件夾下執行如下命令,指定配置文件路徑:

./nginx -c /usr/local/nginx/conf/nginx.conf

1

FastDFS文件上傳下載

client

tracker-server

storage-server

上傳流程

storage定時向tracker上傳狀態信息

client向tracker上傳請求連接

tracker查詢可用storage

tracker返回可用storage的ip和埠

上傳文件

storage生成file-id

storage將內容寫入磁碟

storage向client返回file-id路徑和文件名

client存儲文件信息

下載流程

storage定時向tracker上傳狀態信息

client向tracker上傳請求連接

tracker查詢可用storage

tracker返回可用storage的ip和埠

client向storage發送file-id路徑信息

storage查找文件

storage返回file-content

搭建FastDFS步驟

複製壓縮包到伺服器

fastdfs-nginx-module_v1.16.tar.gz

FastDFS_v5.05.tar.gz

libfastcommonV1.0.7.tar.gz

安裝libevent和perl

yum -y install libevent

yum install perl

1

2

3

安裝libfastcommon

解壓

./make.sh

./make.sh install

把/usr/lib64/libfastcommon.so文件向/usr/lib/下複製一份

安裝Tracker

解壓FastDFS_v5.05.tar.gz

./make.sh

./make.sh install

把cp –r /root/FastDFS/conf目錄下的所有的配置文件都複製到/etc/fdfs下

注意使用cp -r,否則報錯cp: omitting directory 『/root/FastDFS/conf

注意:檢查/etc/fdfs下mime.types和http.conf是否成功從/root/FastDFS/conf中拷貝成功,否則後面的nginx伺服器訪問時一直載入!

cp ~/FastDFS/conf/mime.types /etc/fdfs

cp ~/FastDFS/conf/http.conf /etc/fdfs

新建文件夾

新建文件夾/home/fastdfs/tracker

新建文件夾/home/fastdfs/storage

新建文件夾/home/fastdfs/client

配置tracker服務

修改/root/FastDFS/conf/tracker.conf文件。

base_path=/home/fastdfs/tracker

1

複製到/etc/fdfs下cp tracker.conf /etc/fdfs。

啟動tracker服務

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

1

重新啟動:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

1

配置storage服務

如果是在不同的伺服器安裝,需要重新執行配置tracker之前的四步。

配置storage服務:修改/root/FastDFS/conf/storage.conf文件

base_path=/home/fastdfs/storage

store_path0=/home/fastdfs/storage

tracker_server=192.168.52.129:22122

1

2

3

啟動storage服務

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

1

測試服務

進入/etc/fdfs/文件夾

複製配置文件/etc/fdfs/client.conf.sample為/etc/fdfs/client.conf

複製一個圖片zxc.jpg到/etc/fdfs/文件夾

編輯client.conf

base_path=/home/fastdfs/client

tracker_server=192.168.52.129:22122

1

2

測試

/usr/bin/fdfs_test /etc/fdfs/client.conf upload zxc.jpg

1

如果顯示如下信息則成功:

tracker_query_storage_store_list_without_group:

server 1. group_name=, ip_addr=192.168.52.129, port=23000

group_name=group1, ip_addr=192.168.52.129, port=23000

storage_upload_by_filename

group_name=group1, remote_filename=M00/00/00/wKg0gVvliFOAFTCcAAIEbfjnAjM334.jpg

source ip address: 192.168.52.129

file timestamp=2018-11-09 08:14:59

file size=132205

file crc32=4175888947

example file url: http://192.168.52.129/group1/M00/00/00/wKg0gVvliFOAFTCcAAIEbfjnAjM334.jpg

storage_upload_slave_by_filename

group_name=group1, remote_filename=M00/00/00/wKg0gVvliFOAFTCcAAIEbfjnAjM334_big.jpg

source ip address: 192.168.52.129

file timestamp=2018-11-09 08:14:59

file size=132205

file crc32=4175888947

example file url: http://192.168.52.129/group1/M00/00/00/wKg0gVvliFOAFTCcAAIEbfjnAjM334_big.jpg

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

搭建nginx提供http服務

參考博客(https://www.cnblogs.com/tc520/p/6822412.html)

可以使用官方提供的nginx插件,要使用nginx插件需要重新編譯。

解壓fastdfs-nginx-module_v1.16.tar.gz

改/root/fastdfs-nginx-module/src/config文件,把其中的三個local去掉

安裝nginx重新config

./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=/root/fastdfs-nginx-module/src

1

2

3

4

5

6

7

8

9

10

11

12

13

make

make install

/root/fastdfs-nginx-module/src/mod_fastdfs.conf文件複製到/etc/fdfs目錄下

編輯/etc/fdfs/mod_fastdfs.conf

base_path=/tmp

tracker_server=192.168.52.129:22122

url_hava_group_name=true

store_path0=/home/fastdfs/storage

1

2

3

4

在nginx的配置文件/usr/local/nginx/conf/nginx.conf中修改Server:

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location ~/group([0-9])/M00/{

ngx_fastdfs_module;

}

1

2

3

4

5

6

7

8

9

10

11

libfdfsclient.so拷貝至/usr/lib下

cp /usr/lib64/libfdfsclient.so /usr/lib/

1

啟動nginx,瀏覽器訪問localhost

測試:/usr/bin/fdfs_test /etc/fdfs/client.conf upload girl.jpg

訪問生成的鏈接http://192.168.52.129/group1/M00/00/00/wKg0gVvmcmCAXXqFAAChaTZy5ds776_big.jpg

訪問不了nginx

檢查防火牆是否埠可訪問

vi /etc/sysconfig/iptables

1

檢查如下埠是否打開:

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT

1

2

3

保存,重啟防火牆

service iptables restart

1

檢查/etc/fdfs下mime.types和http.conf是否成功從/root/FastDFS/conf中拷貝成功,否則後面的nginx伺服器訪問時一直載入!

cp ~/FastDFS/conf/mime.types /etc/fdfs

cp ~/FastDFS/conf/http.conf /etc/fdfs

Nginx+FastDFS圖片伺服器搭建

打開今日頭條,查看更多精彩圖片
喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

消息中間件—簡談Kafka中的NIO網路通信模型
Spring Boot中使用AOP

TAG:程序員小新人學習 |