当前位置: 代码网 > 服务器>服务器>Linux > docker安装nginx支持ssl 实现https访问(完整版)

docker安装nginx支持ssl 实现https访问(完整版)

2024年08月01日 Linux 我要评论
> docker实用(安装/操作)专栏传送门 linux普通方式安装nginx并支持ssl


1.前言简介

1.1 专栏传送门


1.1.1 本文简介

2. docker安装nginx支持ssl

2.0 准备ssl证书(例: 阿里云)

2.0.1 配置域名解析

在这里插入图片描述

2.0.2 找到数字证书管理服务并签发ssl证书

在这里插入图片描述

2.0.3 选择默认证书 填写域名 创建

2.0.4 提交审核, 签发成功

2.0.5 解压并上传到宿主机ssl路径下

2.1 安装docker(有跳过)

2.2 linux的操作方式

2.2.1 创建需要挂载的宿主机目录

mkdir -p /usr/local/src/docker/nginx/{conf,html,logs,ssl}

2.2.2 创建并启动nginx容器(普通版)

docker run --name nginx -p 80:80 -d nginx

2.2.3 容器复制nginx配置到宿主机

docker cp nginx:/etc/nginx/nginx.conf /usr/local/src/docker/nginx/conf/
docker cp nginx:/etc/nginx/conf.d /usr/local/src/docker/nginx

2.2.4 删除nginx容器

# 基础写法
docker stop nginx
docker rm nginx

# 简化写法
docker rm -f nginx

2.2.5 创建新nginx容器 配置ssl证书

docker run --name nginx -p 80:80 -p 443:443 \
-v /usr/local/src/docker/nginx/html:/usr/share/nginx/html \
-v /usr/local/src/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf/ \
-v /usr/local/src/docker/nginx/conf.d:/etc/nginx/conf.d/ \
-v /usr/local/src/docker/nginx/logs:/var/log/nginx \
-v /usr/local/src/docker/nginx/ssl:/etc/nginx/ssl \
--privileged=true -d --restart=always nginx

参数解释

2.2.6 修改nginx.conf配置

`(坑)特别注意: 配置路径必须是容器内的路径`
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    include /etc/nginx/default.d/*.conf;

    server {
	    listen 80;
	    #填写绑定证书的域名
	    server_name test.*.cn;
	    #把http的域名请求转成https,相当于用户访问http也可以自动跳转到https,避免出现网页提示不安全
	    return 301 https://$host$request_uri; 
    }    

    server {
        listen  443 ssl;
	    server_name  mkdd.aisce.net; 
	    #证书文件名称
        ssl_certificate_key /etc/nginx/ssl/test.*.cn.key;
        #私钥文件名称 .crt和.pem都可以用
        ssl_certificate /etc/nginx/ssl/test.*.cn.pem; 
        ssl_session_timeout 5m;
        ssl_protocols tlsv1 tlsv1.1 tlsv1.2;
        ssl_ciphers ecdhe-rsa-aes128-gcm-sha256:high:!anull:!md5:!rc4:!dhe;
        ssl_prefer_server_ciphers on;

		location / {
            root   /usr/share/nginx/html;
			try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
		
		location /aaa/ {
			proxy_set_header host $http_host;
			proxy_set_header x-real-ip $remote_addr;
			proxy_set_header remote-host $remote_addr;
			proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
			proxy_pass http://localhost:9666/;
		}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

2.3 查看日志与容器方法

2.3.1 查看容器日志

cd /usr/local/src/docker/nginx/logs
docker container logs -f access.log
docker container logs -f error.log

2.3.2 检查目录挂载是否成功

docker exec -it nginx bash

2.3.3 最终效果

在这里插入图片描述
[操作结束]


3. 文章的总结与预告

3.1 本文总结



@author: pingzhuyan
@description: ok
@year: 2024

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com