03_docker 部署 nginx 配置 HTTPS 并转发请求到后端服务

03_Docker 部署 Nginx 配置 HTTPS 并转发请求到后端服务

一、在 Docker 内部署 Nginx

  1. 拉取 Nginx 镜像

    powershell 复制代码
    docker pull nginx:1.19.4 //如果能直接拉取使用这个命令
    docker pull docker.xuanyuan.me/nginx:1.19.4 //不能直接拉取需要在前面加上镜像地址
  2. 拉取成功后,创建 Nginx 容器并运行

    powershell 复制代码
    docker run -d -p 80:80 --name nginx docker.xuanyuan.me/nginx:1.19.4

    参数说明:

    • -p 80:80: 将宿主机的 80 端口映射到容器的 80 端口上。
    • -d: 以后台方式运行镜像。
    • --name: 指定容器的名称为 nginx
  3. 创建 Nginx 挂载目录

    powershell 复制代码
    //这里将nginx的目录设置在了/home/docker下
    mkdir -p /home/docker/nginx 
  4. 复制 Nginx 配置文件至宿主机

    powershell 复制代码
    # 复制名称为 nginx 容器中 /etc/nginx/nginx.conf 文件夹到宿主机的 /home/docker/nginx 路径下
    docker cp nginx:/etc/nginx/nginx.conf /home/docker/nginx
    # 复制名称为 nginx 容器中 /etc/nginx/conf.d 文件到宿主机的 /home/docker/nginx 路径下
    docker cp nginx:/etc/nginx/conf.d /home/docker/nginx
  5. 删除 Nginx 容器并重新创建

    powershell 复制代码
    docker rm -f nginx
    
    docker run -d \
    -p 80:80 \
    --name nginx \
    -v /home/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
    -v /home/docker/nginx/conf.d:/etc/nginx/conf.d \
    -v /home/docker/nginx/logs:/var/log/nginx \
    docker.xuanyuan.me/nginx:1.19.4

二、配置反向代理

在 /nginx/conf.d 路径下修改 default.conf 配置文件

复制代码
server {
    listen      80;
    listen [::]:80;
    server_name aaa.com www.aaa.com;
}

server {
    location / {
        proxy_pass http://172.17.1.66:8080;  # 将请求转发至后端服务端口,此处后端服务端口为8080,通过服务器内网ip转发,172.17.1.66为我的服务器对应的内网IP
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

三、配置域名解析

  1. 购买域名

  2. 备案网站及域名(ICP 备案和公安网备案)

  3. 添加域名解析,按照如下格式添加。

参数解释:

  • www :将带有 www. 前缀的域名, 解析到对应服务器 IP , 如 www.jenkins.shuzhixinghua.com -> 116.62.199.48;

  • @ :将不带有 www. 前缀的域名,解析到对应服务器 IP , 如 jenkins.shuzhixinghua.com -> 116.62.199.48;

  • 记录值:该域名需要解析到的对应服务器IP。

四、配置 SSL 证书,实现支持 HTTPS 访问

  1. 下载申请/购买的 SSL 证书

  2. 将后缀为 .key.pem 的文件上传至 /nginx/cert 文件夹下(如果没有该文件夹自行新建)。

  3. 修改的 /nginx/conf.d 路径下修改 default.conf 配置文件

    复制代码
    server {
        listen      80;
        listen [::]:80;
        server_name aaa.com www.aaa.com;
    }
    
    server {
        listen 443 ssl; //HTTPS端口为443
        server_name aaa.com www.aaa.com;
    
        ssl_certificate /etc/nginx/cert/aaa.com.pem;
        ssl_certificate_key /etc/nginx/cert/aaa.com.key;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
    
        location / {
            proxy_pass http://172.17.1.66:8080;  # 将请求转发至后端服务端口,此处后端服务端口为8080,通过服务器内网ip转发,172.17.1.66为我的服务器对应的内网IP
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
相关推荐
勇哥的编程江湖4 小时前
starrocks官网docker部署mysql无法连接
运维·docker·容器
就改了5 小时前
Nginx 动静分离配置(详细版)
nginx
小码过河.6 小时前
CentOS 搭建 Docker 私有镜像仓库
linux·docker·centos
Lucky高8 小时前
HTTP和HTTPS复习
网络协议·http·https
飞询9 小时前
部署 coze-loop
docker·coze
龙卷风04059 小时前
使用本地IDEA连接服务器远程构建部署Docker服务
后端·docker
未来之窗软件服务15 小时前
基于 Nginx 与未来之窗防火墙构建下一代自建动态网络防护体系—仙盟创梦IDE
网络·ide·nginx·服务器安全·仙盟创梦ide·东方仙盟
longxibo15 小时前
飞牛系统安装DataEase自定义Docker包
运维·docker·容器
先生沉默先15 小时前
Docker常用命令详解:以Nginx为例
nginx·docker
胡耀超18 小时前
基于Docker的GPU版本飞桨PaddleOCR部署深度指南(国内镜像)2025年7月底测试好用:从理论到实践的完整技术方案
运维·python·docker·容器·ocr·paddlepaddle·gpu