docker nginx ssl設置的實現(xiàn)步驟
使用docker運行nginx,配置代理,和ssl設置,進行https訪問
一 準備
本次在centos環(huán)境中
1.已安裝docker,docker-compose
2.運行了一個后端服務容器,提供基本的接口訪問【可選】
3.一個域名(已經(jīng)解析到服務器上)【必要】
4.ssl證書【必要】
二 ssl證書下載
使用阿里云免費證書
登陸阿里云管理控制臺,搜索 數(shù)字證書管理服務 ,進入證書管理

點擊左側ssl證書,進入,點擊免費證書,點擊創(chuàng)建證書

創(chuàng)建后,點擊證書申請

填寫內(nèi)容,進行申請
通過后,點擊下載,選擇nginx項


下載完成后上傳至服務器,解壓后有兩個文件,分別以pem和key后綴
三 docker 容器間通信網(wǎng)絡
由于nginx和服務都是運行在docker中,為了更好的進行容器間通信,使用docker的網(wǎng)絡
docker network create --driver bridge --subnet 172.30.1.0/24 --gateway 172.30.1.1 my_net # my_net 自定義網(wǎng)絡名稱
創(chuàng)建好一個網(wǎng)絡后,查看 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)建容器時指定使用網(wǎng)絡,參照4.3
四 nginx
4.1 拉取鏡像
docker pull nginx
4.2 創(chuàng)建配置文件
創(chuàng)建一個文件夾conf,增加一個文件nginx.conf,作為nginx的配置文件
其中后端服務的ip為自定義固定的,也可以使用后端服務容器名稱【需要創(chuàng)建該容器時加入 三 中的網(wǎng)絡】
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 服務器ip;
location = /favicon.ico {
access_log off;
log_not_found off;
}
location / {
proxy_pass http://172.30.1.8:8080/; # 后端服務ip接口
}
}
server{
listen 80;
server_name 域名;
# 過濾請求
location = /favicon.ico {
access_log off;
log_not_found off;
}
location / {
proxy_pass http://172.30.1.8:8080/; # 后端服務ip接口
}
}
server {
listen 443 ssl;
server_name 域名;
ssl_certificate /etc/nginx/certs/xxx.pem; # 證書文件
ssl_certificate_key /etc/nginx/certs/xxx.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; # 表示使用的TLS協(xié)議的類型。
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://172.30.1.8:8080/; # 后端服務ip接口
}
}
}4.3 docker-compose.yaml
創(chuàng)建一個文件夾存放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 #將服務器上保存證書的目錄掛載到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 #證書名
- SSL_KEY_PATH=/etc/nginx/certs/x.key #證書名
networks:
my_net:
external: true4.4 運行
docker-compose up -d
五 驗證
在瀏覽器中訪問 https://域名/records/all/1,返回后端服務/records/all/1返回內(nèi)容
并且有https圖標

如果沒有返回,則需查看logs文件夾下的日志內(nèi)容,具體定位問題所在
到此這篇關于docker nginx ssl設置的實現(xiàn)步驟的文章就介紹到這了,更多相關docker nginx ssl設置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker下利用jenkins和docker實現(xiàn)持續(xù)交付
這篇文章主要介紹了利用jenkins和docker實現(xiàn)持續(xù)交付功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05

