docker nginx ssl設(shè)置的實(shí)現(xiàn)步驟
使用docker運(yùn)行nginx,配置代理,和ssl設(shè)置,進(jìn)行https訪問(wèn)
一 準(zhǔn)備
本次在centos環(huán)境中
1.已安裝docker,docker-compose
2.運(yùn)行了一個(gè)后端服務(wù)容器,提供基本的接口訪問(wèn)【可選】
3.一個(gè)域名(已經(jīng)解析到服務(wù)器上)【必要】
4.ssl證書(shū)【必要】
二 ssl證書(shū)下載
使用阿里云免費(fèi)證書(shū)
登陸阿里云管理控制臺(tái),搜索 數(shù)字證書(shū)管理服務(wù) ,進(jìn)入證書(shū)管理
點(diǎn)擊左側(cè)ssl證書(shū),進(jìn)入,點(diǎn)擊免費(fèi)證書(shū),點(diǎn)擊創(chuàng)建證書(shū)
創(chuàng)建后,點(diǎn)擊證書(shū)申請(qǐng)
填寫(xiě)內(nèi)容,進(jìn)行申請(qǐng)
通過(guò)后,點(diǎn)擊下載,選擇nginx項(xiàng)
下載完成后上傳至服務(wù)器,解壓后有兩個(gè)文件,分別以pem和key后綴
三 docker 容器間通信網(wǎng)絡(luò)
由于nginx和服務(wù)都是運(yùn)行在docker中,為了更好的進(jìn)行容器間通信,使用docker的網(wǎng)絡(luò)
docker network create --driver bridge --subnet 172.30.1.0/24 --gateway 172.30.1.1 my_net # my_net 自定義網(wǎng)絡(luò)名稱
創(chuàng)建好一個(gè)網(wǎng)絡(luò)后,查看 docker network list
[root@k8s-work2 men]# docker network list NETWORK ID NAME DRIVER SCOPE 87c6a3cc05f4 bridge bridge local 06441e9ed2b7 harbor_harbor bridge local c1e749a2cfe9 host host local d09d714a1054 menstruation_default bridge local bf99db8fc21e my_net bridge local 8a50da08ea68 my_network bridge local 042f6ecb737f none null local
創(chuàng)建容器時(shí)指定使用網(wǎng)絡(luò),參照4.3
四 nginx
4.1 拉取鏡像
docker pull nginx
4.2 創(chuàng)建配置文件
創(chuàng)建一個(gè)文件夾conf,增加一個(gè)文件nginx.conf,作為nginx的配置文件
其中后端服務(wù)的ip為自定義固定的,也可以使用后端服務(wù)容器名稱【需要?jiǎng)?chuàng)建該容器時(shí)加入 三 中的網(wǎng)絡(luò)】
events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; client_max_body_size 50m; server{ listen 80; server_name 服務(wù)器ip; location = /favicon.ico { access_log off; log_not_found off; } location / { proxy_pass http://172.30.1.8:8080/; # 后端服務(wù)ip接口 } } server{ listen 80; server_name 域名; # 過(guò)濾請(qǐng)求 location = /favicon.ico { access_log off; log_not_found off; } location / { proxy_pass http://172.30.1.8:8080/; # 后端服務(wù)ip接口 } } server { listen 443 ssl; server_name 域名; ssl_certificate /etc/nginx/certs/xxx.pem; # 證書(shū)文件 ssl_certificate_key /etc/nginx/certs/xxx.key; # 證書(shū)文件 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; # 表示使用的TLS協(xié)議的類型。 ssl_prefer_server_ciphers on; location / { proxy_pass http://172.30.1.8:8080/; # 后端服務(wù)ip接口 } } }
4.3 docker-compose.yaml
創(chuàng)建一個(gè)文件夾存放docker-compose.yaml
version: "3" services: nginx: image: nginx #鏡像名稱 container_name: nginx #容器名稱 stdin_open: true tty: true restart: always ports: - 80:80 - 443:443 volumes: - /usr/local/nginx/docker/certs:/etc/nginx/certs #將服務(wù)器上保存證書(shū)的目錄掛載到nginx容器中 - /usr/local/nginx/docker/logs:/var/log/nginx #掛載日記 - /usr/local/nginx/docker/conf/nginx.conf:/etc/nginx/nginx.conf #掛載配置文件 privileged: true networks: my_net: ipv4_address: 172.30.1.3 #固定ip environment: - SSL_CERT_PATH=/etc/nginx/certs/xxx.pem #證書(shū)名 - SSL_KEY_PATH=/etc/nginx/certs/x.key #證書(shū)名 networks: my_net: external: true
4.4 運(yùn)行
docker-compose up -d
五 驗(yàn)證
在瀏覽器中訪問(wèn) https://域名/records/all/1,返回后端服務(wù)/records/all/1返回內(nèi)容
并且有https圖標(biāo)
如果沒(méi)有返回,則需查看logs文件夾下的日志內(nèi)容,具體定位問(wèn)題所在
到此這篇關(guān)于docker nginx ssl設(shè)置的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)docker nginx ssl設(shè)置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS7 安裝docker 解決啟動(dòng)不了的問(wèn)題
這篇文章主要介紹了CentOS7 安裝docker 解決啟動(dòng)不了的相關(guān)資料,需要的朋友可以參考下2016-10-10詳解mac下通過(guò)docker搭建LEMP環(huán)境
本篇文章主要介紹了詳解mac下通過(guò)docker搭建LEMP環(huán)境,詳細(xì)介紹了nginx,mysql,php的安裝配置,有興趣的可以來(lái)了解一下。2017-03-03Docker多平臺(tái)安裝與配置指南的實(shí)現(xiàn)
這篇文章主要介紹了Docker多平臺(tái)安裝與配置指南的實(shí)現(xiàn),深入研究了Docker在Linux、Windows、和macOS等不同平臺(tái)上的安裝過(guò)程及Docker鏡像管理、容器運(yùn)維、使用Docker Compose進(jìn)行多容器管理,以及網(wǎng)絡(luò)與數(shù)據(jù)管理等,感興趣的可以了解一下2024-01-01Docker?制作tomcat鏡像并部署項(xiàng)目的步驟
這篇文章主要介紹了Docker?制作tomcat鏡像并部署項(xiàng)目?,講解如何制作自己的tomcat鏡像,并使用tomcat部署項(xiàng)目,需要的朋友可以參考下2022-10-10Docker下利用jenkins和docker實(shí)現(xiàn)持續(xù)交付
這篇文章主要介紹了利用jenkins和docker實(shí)現(xiàn)持續(xù)交付功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05