Docker 配置 https

需求

nginx 配置 https ,因为直接在虚拟机上配置可能会污染虚拟机环境,不利于随时调整,所以选用docker配置nginx 及 https

解决

查了很多资料,最终用以下两篇解决

http://t.csdn.cn/natKe

http://t.csdn.cn/tAaVX

配置

个人配置如下

docker-compose.yml

version: '3'
 
services:
  nginx:
    image: nginx:latest
    container_name: nginx-web
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - /root/nginx/cert:/etc/nginx/cert
      - /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 
      - /root/nginx/html:/usr/share/nginx/html
      - /root/nginx/log:/var/log/nginx
      - /etc/localtime:/etc/localtime:ro

nginx.conf

user  nginx;
worker_processes  1;
 
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    keepalive_timeout  65;
    #gzip  on;
    
    include /etc/nginx/conf.d/*.conf;
    client_max_body_size 100m;

        upstream tomcat {
        server  xxx.xxx.xxx.xxx:端口 weight=10 max_fails=2 fail_timeout=30s; 
        }

    server{
        listen 80;
        charset utf-8;
        server_name erdengk.top;

        location /projectName { 
                proxy_pass https://erdengk.top;
        }
         
            location = / {
            return 301 https://erdengk.top;
        }
    }

        server{
        listen 443 ssl;
        charset utf-8;
        server_name erdengk.top;
           
                ssl on;
                                ssl_certificate   /etc/nginx/cert/xxxxxxxxxxx.pem; 
        ssl_certificate_key  /etc/nginx/cert/xxxxxxx.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;
 
        location / {
                proxy_pass http://tomcat;
        }
 }
 
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Docker配置HTTPS镜像仓库,需要进行以下步骤: 1. 获取证书文件 首先需要获取镜像仓库的证书文件。可以通过浏览器访问镜像仓库的URL,然后获取证书文件。将证书文件保存到本地。 2. 创建Docker配置文件 在/etc/docker目录下创建daemon.json文件。如果该文件已经存在,可以直接编辑这个文件。在daemon.json文件中添加以下内容: ``` { "insecure-registries": [], "registry-mirrors": [], "experimental": true, "tlsverify": true, "tlscacert": "/etc/docker/ca.crt", "tlscert": "/etc/docker/client.crt", "tlskey": "/etc/docker/client.key" } ``` 这些配置项的含义如下: - "insecure-registries": 不安全的镜像仓库列表,以逗号分隔。 - "registry-mirrors": 镜像仓库列表,以逗号分隔。 - "experimental": 是否启用实验性功能。 - "tlsverify": 是否验证TLS证书。 - "tlscacert": TLS CA证书文件路径。 - "tlscert": TLS证书文件路径。 - "tlskey": TLS私钥文件路径。 在这里,我们需要设置tlsverify为true,并且设置tlscacert、tlscert和tlskey为之前获取的证书文件路径。 3. 重启Docker服务 在完成Docker配置文件的编辑后,需要重启Docker服务,使配置文件生效。可以使用以下命令重启Docker服务: ``` sudo systemctl restart docker ``` 4. 测试配置 可以使用以下命令测试Docker配置是否正确: ``` docker login <registry-url> ``` 其中,<registry-url>是镜像仓库的URL。如果配置正确,将会提示输入用户名和密码,然后成功登录镜像仓库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值