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
打開今日頭條,查看更多精彩圖片※消息中間件—簡談Kafka中的NIO網路通信模型
※Spring Boot中使用AOP
TAG:程序員小新人學習 |