上一期我讲过怎么用 Nginx 反向代理把使用一个80端口支持多个网站. 今天我来介绍一下怎么结合companion 来实现HTTPS. 这样你就可以把你的HTTP的网站或者服务变成HTTPS的服务. 这个方法会自动生成证书, 你不需要手动管理你的证书.
https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion
上期视频: https://youtu.be/0TITtRXp6P4
以下是视频中用到的代码
sudo docker network rm feng-net sudo docker network create feng-net sudo docker rm -f nginx-proxy sudo docker run -p 80:80 -p 443:443 \ -d \ --name nginx-proxy \ --network feng-net \ --network-alias nginx-proxy-host\ -v /usr/share/nginx/html \ -v /etc/nginx/vhost.d \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ jwilder/nginx-proxy sudo docker rm -f nginx-proxy sudo docker run -p 80:80 -p 443:443 \ -d \ --name nginx-proxy \ --network feng-net \ --network-alias nginx-proxy-host\ -v /home/fennng/certs:/etc/nginx/certs:ro \ -v /etc/nginx/vhost.d \ -v /usr/share/nginx/html \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ --label com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy \ jwilder/nginx-proxy sudo docker rm -f companion sudo docker run \ -d \ --name companion \ --network feng-net \ --network-alias companion-host \ -v /home/fennng/certs:/etc/nginx/certs:rw \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ --volumes-from nginx-proxy \ jrcs/letsencrypt-nginx-proxy-companion sudo docker rm -f www sudo docker run \ -d \ -e VIRTUAL_HOST=www.fengnz.tk \ -e "LETSENCRYPT_HOST=www.fengnz.tk" \ -e "LETSENCRYPT_EMAIL=soody@qq.com" \ --network feng-net \ --network-alias www-host \ --name www \ -p 81:80 \ nginxdemos/hello sudo docker rm -f bbs sudo docker run \ -d \ -e VIRTUAL_HOST=bbs.fengnz.tk \ -e "LETSENCRYPT_HOST=bbs.fengnz.tk" \ -e "LETSENCRYPT_EMAIL=soody@qq.com" \ --network feng-net \ --network-alias bbs-host \ --name bbs \ -p 82:8000 \ crccheck/hello-world sudo docker run --name web-test1 -p 80:80 -d --rm nginxdemos/hello sudo docker run --name web-test2 -p 80:8000 -d --rm crccheck/hello-world