Nginx搭建Https反向代理,使用阿里云免费SSL证书 - Docker

news2024/11/26 2:47:50

Docker安装Nginx - 需要有域名

没有docker需提前安装docker,不知怎么安装的请自行百度。

1、拉取镜像

docker pull nginx

2、去阿里云或者其他云服务提供商申请免费证书,申请到之后下载下来,上传到服务器

# 创建nginx-proxy目录
mkdir nginx-proxy
# 创建ssl目录,存放证书
mkdir ssl

把证书上传到ssl目录下面,下面是ssl的目录结构/root/nginx/ssl和上传的证书有两个文件一个.key一个.pem
在这里插入图片描述
进入nginx-proxy目录cd /root/nginx/nginx-proxy

# 拷贝证书
cp -a /root/nginx/ssl ./

3、编写nginx.conf
在nginx-proxy目录`目录下面

vim nginx.conf

粘贴以下内容,注意修改证书名为自己的(转发规则根据自己的需求自定义)

worker_processes 1;

events {
    worker_connections 1024;
}

http {
    server {
        listen 80;
        server_name openAI;

        location /v1/ {
            proxy_pass https://api.openai.com;
        }
    }

    server {
        listen 443 ssl;
        server_name openAI;
       
        ssl_certificate /etc/nginx/ssl/自己的证书名.pem;
        ssl_certificate_key /etc/nginx/ssl/自己的证书名.key;
        proxy_ssl_server_name on;
        proxy_ssl_session_reuse off;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location /v1/ {
            proxy_pass https://api.openai.com;
        }
    }
}

3、编写Dockerfile
编写镜像文件

vim Dockerfile

粘贴以下内容

FROM nginx:latest

COPY nginx.conf /etc/nginx/nginx.conf
COPY ssl /etc/nginx/ssl

完事以后nginx-proxy目录下面结构如下
在这里插入图片描述
4、创建镜像并运行测试
构建镜像

docker build -t custom-nginx .

镜像构建完之后,docker images查看镜像如下,可以看到custom-nginx镜像在这里插入图片描述
运行custom-nginx镜像

docker run -d -p 19980:80 -p 19981:443 --name custom-nginx  custom-nginx

docker ps查看运行的容器
在这里插入图片描述去浏览器测试https://自己的域名:19981/v1/text能不能转发,出现下面的情况表示转发成功(注意:有防火墙或者安全组的话需要打开才行),## 测试结果

14:32:07.353 [OkHttp https://xxxxxxxxxxx:19981/...] INFO com.unfbx.chatgpt.sse.ConsoleEventSourceListener - OpenAI返回数据:{"id":"chatcmpl-7PPxCx8loyVUsYRr4dCO35mypX06f","object":"chat.completion.chunk","created":1686292322,"model":"gpt-3.5-turbo-0301","choices":[{"delta":{"content":"时间"},"index":0,"finish_reason":null}]}

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

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

相关文章

软考A计划-系统架构师-官方考试指定教程-(13/15)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

IP签名档PHP开源版:轻松打造网站个性签名档

今天,我们将为大家介绍一个有趣的IP签名档项目。通过将源代码部署在服务器上,您可以轻松地为自己的社交媒体、论坛等地创建一个独特的签名档,使您的网站更加出彩! 接下来,我们将详细向大家展示如何搭建PHP开源版IP签名…

ASP.NET Core Web API入门之一:创建新项目

ASP.NET Core Web API入门之一:创建新项目 一、引言二、创建新项目三、加入Startup类,并替换Program.cs内容四、编辑Program.cs代码五、修改控制器的路由六、运行项目 一、引言 最近闲着,想着没真正从0-1开发过ASP.NET Core Web API的项目&a…

SpringMVC原理分析 | Hello程序

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! SpringMVC Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet; 拥有结构最清晰的 ServletJSPJav…

uni-app APP、html引入html2canvas截图以及截长图

下载安装html2canvas 方式一,https://www.bootcdn.cn/ CDN网站下载html2canvas插件 这里下载后放在测项目目录common下面 页面中引入 方式二、npm方式安装html2canvas 1、npm方式下载 npm i html2canvas2、引入html2canvas import html2canvas from html2can…

linux系统CAN驱动问题分析

在TI sam3354芯片上,使用3.13及4.19版内核,编译CAN驱动,加载启动后,查看有CAN设备,但无法直接使用ifconfig操作CAN设备,以下简单分析下问题。 加载驱动后,查看网络设备: 可以看到有…

分布式项目15 用户注册,单点登陆,用户退出dubbo来实现

用户注册 分析:当用户填写完成注册信息之后,将请求发送给前台服务器.之后前台消费者利用dubbo框架实现RPC调用。之后将用户信息传递给jt-sso服务提供者.之后完成数据的入库操作。 01.页面url分析 02.查看页面JS $.ajax({ type : "POST", url : "/…

煤矿安全防范,DTU为采矿过程提供实时数据支持

在当今快节奏的时代,采矿行业为我们提供了丰富的资源。然而,随着采矿作业的不断扩大和复杂化,我们也面临着一系列潜在的挑战。其中,数据传输和安全问题尤为突出。 想象一下,在一个繁忙的矿山中,海量的数据需…

让软件研发可视化可量化,华为云CodeArts持续加速企业研发转型

导读:软件开发工具从未像今天这样重要。 “没有度量,就没有管理。” (If you can’t measure it, you can’t manage it.) 管理学大师彼得德鲁克的话时刻提醒人们,度量是管理的必要条件。 在高科技领域,研发投入是企业核心竞争力的…

Linux常用命令——grep命令

在线Linux命令查询工具 grep 强大的文本搜索工具 补充说明 grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本&…

【MySQL数据库 | 第十二篇】:约束

约束: 在MySQL中,约束是一种限制数据表中列值的规定。保证数据库中的数据正确,有效性和完整性。MySQL中的约束有以下几种: 1. 主键约束(Primary Key Constraint):主键是用于唯一标识表中每行记…

国内强大的智能语言模型AI

​ Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 前言 环境列表 视频教程 1.飞书设置 2.克隆feishu-chatgpt项目 3.配置config.yaml文件 4.运行feishu-chatgpt项目 5.安装cpolar内网穿透 6.固定公网地址 7.机器人权…

chatgpt赋能python:Python文件目录切换:简单易用的方法

Python文件目录切换:简单易用的方法 Python语言可以轻松地处理文件和目录。使用Python的os库可以方便地操作文件系统。Python在os库中提供了许多可以轻松完成文件和目录操作的函数,其中之一是os.chdir。os.chdir函数用于更改当前的工作目录。 为什么需…

使用阿里云OSS实现图片文件上传

说明&#xff1a;注册用户时&#xff0c;经常会用到上传头像。文件的上传/接收与一般文本数据不同。 一、创建Demo页面 先准备一个Demo页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>图片上传…

第三章 三段论:所有,有的。

第三章 三段论&#xff1a;所有&#xff0c;有的。 第一节 三段论-推结论 题-三段论-结构-推结论&#xff1a;所有A是B&#xff1b;所有B是C&#xff1b;得&#xff1a;所有A是C。&#xff08;最简单的模型&#xff09; 4.所有高明的管理者都懂得关心雇员福利的重要性&…

Linux目录结构(与window目录结构对比+绝对路径和相对路径)

一、Linux目录结构 Linux目录结构是一个标准化的文件系统层次结构&#xff0c;非常有组织性并且易于管理。而与Windows 操作系统不同&#xff0c;Linux将所有文件和设备都组织在一个单一的根目录下。以下是Linux的标准目录结构&#xff1a; /&#xff1a;根目录&#xff0c;包含…

<DB2>《DB2数据库健康检查》第3部分

《DB2数据库健康检查》第3部分 2 数据库对象检查2.12 检查是否需要对表和索引进行runstats(30天未作统计更新)2.13 检查表和索引是否需要重组2.14 查看表空间所在裸设备权限2.15 查看数据库备份进度 2 数据库对象检查 2.12 检查是否需要对表和索引进行runstats(30天未作统计更…

递归sql查询完整科目名称

已知表 科目编号 科目名称 1001 1001 现金 1002 1002 银行存款 10020100 0100 工商银行存款 100201000001 0001 工行重庆路支行 10020200 0200 建设银行存款 100202000001 0001 建行铁北支行 需要整理成 科目编号 科目称 科目全称 1001 现金 现金 1002 银行存款 银行存款 …

【OI学习笔记】基础算法-前缀和与差分算法

板块&#xff1a;基础算法、线性优化 难度&#xff1a;较易 前置知识&#xff1a;C基础语法 一、前缀和 1、定义 在一维空间中&#xff0c;对于一个数据总量为 n n n 的数组 a a a&#xff0c;有数据 a [ 1 ] , a [ 2 ] , a [ 3 ] , . . . , a [ n − 1 ] , a [ n ] a[1]…

计算数组中各元素的平方根numpy.sqrt()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算数组中各元素的平方根 numpy.sqrt() 选择题 以下程序的运行结果是? import numpy as np a np.array([1, 4, 9, -4]) print("【显示】a ", a) print("【执行】np.sqrt(a)&…