当前位置: 首页 > news >正文

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

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

一、在 Docker 内部署 Nginx

  1. 拉取 Nginx 镜像

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

    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 挂载目录

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

    # 复制名称为 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 容器并重新创建

    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;
        }
    }
    
    
    
http://www.dtcms.com/a/118368.html

相关文章:

  • WebVTT 教程
  • dfs练习
  • Automattic 裁员16%,Matt Mullenweg称此举旨在提升盈利能力并增强投资实力
  • ZoomCharts使用方法
  • 线性代数:公共解
  • dolphinscheduler单机部署链接oracle
  • 智慧农业示范园区大数据分析平台整体解决方案
  • 【Easylive】Elasticsearch搜索组件详解
  • Android Input——IMS启动流程(二)
  • ubuntu下的node.js的安装
  • 带Label的韦恩图(vue)
  • 【Java】Maven
  • 【软件测试】自动化测试结合 CI/CD有哪些方案
  • Oracle 数据库查询表广播
  • 青蛙吃虫--dp
  • 【蓝桥杯】动态规划:线性动态规划
  • PhotoShop学习07
  • PostIn V1.0.8版本发布,IDEA 插件支持一键扫描上报,让接口定义不再繁琐
  • leetcode刷题记录44-208. 实现 Trie (前缀树)
  • 指针本质传递偏移动态申请空间 c语言(day05)
  • excel常见错误包括(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL! )
  • 【蓝桥杯】动态规划:背包问题
  • 23种设计模式-行为型模式-模板方法
  • AtCoder 第400场初级竞赛 A~E题解
  • Redis客户端命令到服务器底层对象机制的完整流程?什么是Redis对象机制?为什么要有Redis对象机制?
  • 子串分值和(蓝桥杯)
  • 【MySQL 数据库】数据类型
  • Everything 安装教程与使用教程(附安装包)
  • java+postgresql+swagger-多表关联insert操作(七)
  • 流体力学笔记