Nginx(Docker 安装的nginx)配置域名SSL证书

news2025/1/6 18:55:45

1.首先确保Linux环境上已经安装了docker(可参考VMware使用和Linux安装Docker_wmware直接部署linux和安装docker后-CSDN博客

2.通过docker 安装nginx(可参考Linux 环境安装Nginx—源码和Dokcer-CSDN博客)

3.安装SSL证书

3.1 在宿主机中创建证书目录并上传证书(主要是xxx.pem和xxx.key文件)

在nginx目录下创建cert/目录(/home/data/nginx/cert/),将证书放在cert/目录下

3.2修改Nginx配置文件(nginx.conf),修改与证书相关的配置内容

#user  nobody;
worker_processes auto;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections 65535;
    use epoll;
    multi_accept on;
    accept_mutex off;
}


http {
    include       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" "$host"';

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    client_max_body_size 10m;

    upstream javaServerHost {
      server 服务器ip:端口;
    }

    server {
        listen       80 ssl;# 这里加上ssl
        server_name 你的域名;
        if ($request_method = 'OPTIONS') {
                return 200;
        }
        #https证书
       ssl_certificate   "xxx.pem";#证书全路径
       ssl_certificate_key  "xxx.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;
       ssl_session_cache shared:SSL:1m;
       #fastcgi_param HTTPS on;
       #fastcgi_param HTTPS_SCHEME https;
       #end

        add_header Access-Control-Allow-Origin '*';
        add_header Access-Control-Allow-Headers '*';
        add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS,PUT,DELETE';
        #将所有HTTP请求通过rewrite指令重定向到HTTPS。
        #rewrite ^(.*) https://$server_name$1 permanent;
        #rewrite ^(.*)$ https://$host$1 permanent;
        #return 301 https://$host$request_uri;
        location / {
            root   /home/data/web/;
            try_files $uri $uri/index.html =404;
        }

        location /api {
            rewrite ^/api/(.*)$ /$1 break;
            proxy_pass http://javaServerHost;
            proxy_redirect off;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X_Real_IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_read_timeout 300;
            proxy_send_timeout 300;
        }

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

3.3修改启动nginx脚本,重启nginx

port=8006

if [ -z $1 ]; then
  echo 使用默认端口8006
else
  port=$1
  echo 使用指定端口$1
fi

docker rm -f 容器名称

docker run -d \
--name 容器名称 \
--ulimit nofile=65535:65535 \
--ulimit nproc=65535:65535 \
-v /home/data/xxx/web/:/home/data/web/ \
-v /home/data/xxx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/data/xxx/nginx_cert/:/etc/nginx/cert/ \
-p $port:80 \
-e TZ=Asiz/Shanghai \
--restart=always \
nginx

说明:/home/data/xxx/web/:/home/data/web/ 前者是服务器主机路径,后者是docker容器路径

使用:docker exec -it 容器名 /bin/bash  进入前容器

           docker logs 容器名   查看日志

3.4验证SSL证书是否安装成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1547013.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java零基础入门到精通_Day 2

18 算数运算符 - * / % 整数的运算只能得到整数 除非用浮点数进行运算(得到浮点数) public class Base_002 {public static void main(String[] args) {double a 6.0;int b 4;System.out.println(a/b); //1.5} } 19 字符的操作 public class Base_0…

鸿蒙OS封装【axios 网络请求】(类似Android的Okhttp3)

Okhttp.ets /*** 网络请求*/ import axios from ohos/axios import httpConstants from ../net/HttpConstants import errorCode from ../utils/errorCode import toast from ../utils/ToastUtils import router from ../utils/RouterUtils import SPUtils from ../utils/SPUt…

Transformer的前世今生 day08(Positional Encoding)

前情提要 Attention的优点:解决了长序列依赖问题,可以并行。Attention的缺点:开销变大了,而且不存在位置关系为了解决Attention中不存在位置关系的缺点,我们通过位置编码的形式加上位置关系 Positional Encoding&…

【保姆级讲解Edge兼容性问题解决方法】

🌈个人主页:程序员不想敲代码啊🌈 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家🏆 👍点赞⭐评论⭐收藏 🤝 希望本文对您有所裨益,如有不足之处,欢迎在评论区提…

头条网盘如何快速获取授权推广

近期可以说是网盘拉新的一个盛宴,好几家网盘为了抢夺用户,都在付费拉新用户,而如今头条网盘也需要开拓市场,方式也很简单粗暴,就是拿钱砸,而对于普通用户来说,只要获得授权,正是赚钱…

【Linux】基础 IO(动静态库)-- 详解

一、前言 为什么要使用别人的代码? 主要是为了提高程序开发的效率和程序的健壮性。 当别人把功能都实现了,然后我们再基于别人的代码去做二次开发,那么效率当然就提高了。其次,这里基于的别人当然不是随便找的一个人,…

基于SpringBoot和Leaflet的行政区划地图掩膜效果实战

目录 前言 一、掩膜小知识 1、GIS掩膜的实现原理 2、图层掩膜流程 二、使用插件 1、leaflet-mask介绍 2、核心代码解释 三、完整实例实现 1、后台逻辑实现 2、省级行政区划查询实现 3、行政区划定位及掩膜实现 4、成果展示 总结 前言 在之前的博客提过按空间矢量…

喜报!数维杯数学建模成功入围安徽工业大学学科竞赛推荐名单

喜报!数维杯数学建模挑战赛成功入围安徽工业大学学科竞赛参赛目录。 安徽工业大学创新创业学院发布了《2023年度安徽工业大学大学生学科竞赛参赛目录》。 其中,数维杯大学生数学建模挑战赛成功入围竞赛参赛目录,感谢全国各高校对数维杯的高…

CUMT linux操作系统课程设计 任务2

先说题目: 调试Linux内核的启动过程,并在Linux 0.11内核进入保护模式之前添加提示信息 //这里吐槽一下,学校发的文档让你用断点去查看运行根本无法操作,报错如下: 所以别管这个报错,先跟着我来 第一题,调试…

Filter,Listener

1,Filter 概念:Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能 过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等…

关于ChatGPT辅助论文写作的重大风险预警

ChatGPT已经发布一年多了,我说说使用它之后最大的变化。 我在工作上变得更懒了! 现在与工作有关的,做啥都想着先用ChatGPT来搞。 比如,拍领导马屁: 领导说,“996是福报,混日子不是兄弟。” 我想…

javaWeb校园二手平台项目

一、系统分析 1.1开发背景 随着全世界互联网技术的不断发展,各种基于互联网技术的网络应用不断涌现,网络技术正在不断的深入人们的生活。人们从Internet上获取信息、享受生活、交流感情、网上工作等。Internet正在迅速改变着人们的生活方式。 经过我国改革开放多年…

Docker数据卷与网络模式

华子目录 数据卷注意数据卷操作查看镜像,容器,数据卷所占空间 Docker的网络模式查看指定容器的网络模式bridge模式none模式host模式container模式 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有…

【Qt】使用Qt实现Web服务器(八):SSE ( Server-sent Events )

1、简述 SSE ( Server-sent Events )是 WebSocket 的一种轻量代替方案,使用 HTTP 协议。 SSE 是单向通道,只能服务器向客户端发送消息,如果客户端需要向服务器发送消息,则需要一个新的 HTTP 请求。 WebSocket 是全双工通道,可以双向通信。 2、效果 在界面上不停的刷…

环境影响与碳排放生命周期评估应用及案例分析

生命周期分析 (Life Cycle Analysis, LCA) 是评价一个产品系统生命周期整个阶段——从原材料的提取和加工,到产品生产、包装、市场营销、使用、再使用和产品维护,直至再循环和最终废物处置——的环境影响的工具。这种方法被认为是一种“从摇篮到坟墓”的…

【Kubernetes】在 Mac 上搭建 Kubernetes

安装 Docker Desktop 前往 Install Docker Desktop on Mac | Docker Docs 下载 Docker Desktop 并完成安装。 配置镜像加速服务 在国内通过官方镜像源的下载速度很慢,因此需要配置镜像加速服务。 国内常见的镜像加速服务有: mirror.baidubce.comhub-…

基于springboot+vue+Mysql的网上图书商城

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

24/03/26总结

面向对象练习题:(封装,继承,多态) 封装:对象代表什么,就得封装对应的数据,并提供数据对应的行为,(把零散的数据和行为封装成一个整体:也就是我们说的对象) 继承:当封装…

Java编程练习之类的多态

类的多态可以从两方面体现:一是方法的重载,二是类的上下转型。 1)方法的重载 方法的重载就是在同一个类中允许同时存在多个同名方法,只要这些方法的参数个数或类型不同即可。 练习1: 使用方法的重载描述所有的超市…

分治——快速排序算法

例题一 解法(快排思想 - 三指针法使数组分三块): 算法思路: 类⽐数组分两块的算法思想,这⾥是将数组分成三块,那么我们可以再添加⼀个指针,实现数组分 三块。 设数组⼤⼩为 n &#xff0c…