使用Docker一鍵搭建FastDFS+Nginx支持https

系統環境:CentOS Linux release 7.4.1708 (Core)

參考:

https://blog.csdn.net/tttzzztttzzz/article/details/86709318

https://www.linuxea.com/1423.html

 

一、拉取鏡像並啓動(改下ip地址)

docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=xx.xx.xxx.xxx(ip地址) -e WEB_PORT=80 -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs

 

二、測試FastDFS

1.進入fastdfs容器

docker exec -it fastdfs /bin/bash

2.添加index.html測試文件

echo "Hello FastDFS!">index.html

3.測試文件上傳

fdfs_test /etc/fdfs/client.conf upload index.html

返回 example file url: http://xx.xx.xx.xx/group1/M00/00/00/rBDzWF5M-I-AaotYAAAADwL5vO468_big.html 表示FastDFS上傳功能沒問題

 

三、下載fastdfs-nginx-module-1.20、http_ssl_module、模塊和nginx安裝包

1.下載fastdfs-nginx-module-1.20模塊

可以看下容器的linux版本

cat /etc/issue

我的是Alpine Linux 3.8。沒有apt-get、vim等命令。alpine 通過apk –help命令查看完整的包管理命令

創建下載目錄

mkdir /usr/local/src

進入下載目錄

cd /usr/local/src

下載fastdfs-nginx-module-1.20

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz

解壓

tar xf V1.20.tar.gz

 

2.下載nginx安裝包

wget http://nginx.org/download/nginx-1.13.6.tar.gz

解壓

tar xf nginx-1.13.6.tar.gz

進入nginx-1.13.6目錄

cd nginx-1.13.6

 

3.下載http_ssl_module模塊

apk --update --no-cache add geoip geoip-dev pcre libxslt gd openssl-dev pcre-dev zlib-dev build-base linux-headers libxslt-dev gd-dev openssl-dev libstdc++ libgcc patch logrotate supervisor inotify-tools && rm -rf /var/cache/apk/*

 

4.nginx添加模塊

./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/fastdfs-nginx-module-1.20/src --with-httpstubstatus_module --with-httpsslmodule

解釋下 ./configure --prefix 後面跟的是nginx安裝目錄

編譯nginx

make

 

5.查看是否支持ssl

objs/nginx -V

有 TLS SNI support enabled 這個信息表示nginx支持ssl

把安裝目錄下的sbin/nginx備份

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx-bak

把objs/nginx拷貝到安裝目錄下sbin的文件夾下

cp objs/nginx /usr/local/nginx/sbin

進入nginx安裝目錄

cd /usr/local/nginx

查看nginx.conf是否編寫有誤

sbin/nginx -t

 

6.ssl證書

創建證書目錄

mkdir cert

從阿里雲下載證書拷貝到cert目錄下

退出容器

exit

把宿主機文件拷貝到容器裏

docker cp 宿主機目錄或文件 容器ID(或容器名):/usr/local/nginx/cert

 

7.編寫fastdfs容器裏的nginx.conf (支持http和https)

vi /usr/local/nginx/conf/nginx.conf
server {
   listen 80;
   #server_name localhost;

   ####### https ###########
   listen 443 ssl;
   server_name localhost;
   #ssl on;
   ssl_certificate /usr/local/nginx/cert/cert.pem;
   ssl_certificate_key /usr/local/nginx/cert/cert.key;
   ssl_session_timeout 5m;
   ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_prefer_server_ciphers on;
   ####### https ###########


   location ~ /group[0-9]/M00 {
     ngx_fastdfs_module;
   }
 }

保存後查看是否編寫正確

sbin/nginx -t

查看是否已經監聽80和443端口

netstat -unltp

如果443和80端口都沒有被監聽到,需啓動nginx

sbin/nginx

如果443和80端口只監聽到一個,停止nginx

sbin/nginx -s stop

再啓動nginx

sbin/nginx

再次上傳文件

把文件地址拷貝到瀏覽器地址欄看下能否正常顯示,再把http改成https看下能否正常顯示,如果都沒問題就表示成功了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章