Nginx https反向代理

接前一篇文章,今天看看https的反向代理怎么配置。

生成自签名证书和私钥

要使用https,首先需要有证书和私钥,这里创建一个测试用的自签名证书和私钥。

使用 openssl 命令生成服务器私钥文件

openssl genrsa -out server.key 2048

生成证书请求

openssl req -new -key server.key -out server.csr

根据私钥和证书请求生成证书

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

配置反向代理

这里还是使用前一篇文章中使用的python3的 http server 作为后端应用服务。

$ python3 -m http.server 8000

修改 /etc/nginx/nginx.conf 文件,添加反向代理配置

    server {listen       443 ssl;server_name  localhost;ssl_certificate      /etc/nginx/server.crt;ssl_certificate_key  /etc/nginx/server.key;ssl_session_timeout  5m;ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers   on;location / {proxy_pass              http://localhost:8000;proxy_http_version      1.1;proxy_set_header        Connection "";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 https;}}

修改后完整的 /etc/nginx/nginx.conf 文件内容如下:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;events {worker_connections 768;
}http {sendfile on;tcp_nopush on;types_hash_max_size 2048;include /etc/nginx/mime.types;default_type application/octet-stream;ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers on;access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;gzip on;server {listen 80;server_name localhost;location / {proxy_pass http://localhost:8000;}}server {listen       443 ssl;server_name  localhost;ssl_certificate      /etc/nginx/server.crt;ssl_certificate_key  /etc/nginx/server.key;ssl_session_timeout  5m;ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers   on;location / {proxy_pass              http://localhost:8000;proxy_http_version      1.1;proxy_set_header        Connection "";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 https;}}include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;
}

重新启动服务使配置生效

$ sudo service nginx restart

最后通过访问 “https://localhost” 地址检查请求是否被代理到后端的python应用上了。

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

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

相关文章

Golang - 使用CentOS 7 安装Golang环境

文章目录 操作步骤 操作步骤 为在CentOS 7上安装Go语言环境,可以按照以下步骤进行操作: 下载Go语言包: 从官方网站 https://golang.org/dl/ 下载适用于Linux的Go语言包。 解压缩Go语言包: 使用以下命令解压缩下载的Go语言包 […

CyberDAO:web3时代的引领者

Web3.0正在改写着世界运行的规则,AGI将为人类未来的生产效率、工作方式与目标带来改变,区块链经过十余年发展开启了去中心化新格局,带来生产关系的变革。人类正在从过往以时间换取收入、听命完成工作,转变为以个性化、自主追求人生…

OpenAI Sora视频模型技术原理报告解读

▌01. OpenAI Sora 视频生成模型技术报告总结 •不管是在视频的保真度、长度、稳定性、一致性、分辨率、文字理解等方面。 •技术细节写得比较泛(防止别人模仿)大概就是用视觉块编码(visual patch)的方式,把不同格…

数据采集三防平板丨三防平板电脑丨停车场应用

随着现代科技的不断发展,三防平板已经成为许多人工作和生活的必备工具。在停车场这个场景中,三防平板的应用可以大大提高停车场管理的效率和安全性。 停车场是现代城市交通管理的重要组成部分,它直接关系到城市交通的流畅和公共安全。停车场…

RK3588平台开发系列讲解(视频篇)ffmpeg 的移植

文章目录 一、ffmpeg 介绍二、ffmpeg 的组成三、ffmpeg 依赖库沉淀、分享、成长,让自己和他人都能有所收获!😄 📢ffmpeg 是一种多媒体音视频处理工具,具备视频采集功能、视频抓取图像、视频格式转换、给视频加水印并能将视频转化为流等诸多强大的功能。它采用 LGPL 或 G…

C++知识点总结(16):结构体排序

课程大纲 一、常见排序方法1. 桶排序2. 冒泡排序3. 选择排序4. 插入排序 二、结构体排序1. 融入实际2. 认识结构体2.1 概念2.2 框架2.2.1 存储2.2.2 输入输出2.2.3 结构体数组2.2.4 例题2.2.4.1 结构体读写2.2.4.2 结构体交换 三、sort函数1. 使用方法2. 固定格式 四、结构体和…

Rofin罗芬Laser激光DQ80设备操作说明书

Rofin罗芬Laser激光DQ80设备操作说明书

计算机视觉的应用23-OpenAI发布的文本生成视频大模型Sora的原理解密

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用23-OpenAI发布的文本生成视频大模型Sora的原理解密。本文概况性地将Sora模型生成视频主要分为三个步骤:视频压缩网络、空间时间潜在补丁提取以及视频生成的Transformer模型。 文章目录…

【lesson62】网络通信UdpSocket版

文章目录 UdpSocketUdpServer.hppUdpServer类成员变量解释成员函数解释 UdpServer的实现ServerIinit的实现socketbindhtonsinet_addr具体实现 ServerStart的实现recvfromsendtontohsinet_ntoa具体实现 ~UdpServer函数实现UdpServer.hpp整体完整代码 UdpServer.ccUdpClient.ccTh…

CDP和Chrome

CDP和Chrome CDP和WebDriver Protocol WebDriver和 Chrome DevTools Protocol(CDP) 是用于自动化浏览器的两个主要协议,大多数的浏览器自动化工具都是基于上述其中之一来实现的。可以通过这两种形式来和浏览器交互,通过代码来控…

拉链表的概念设计与实现

拉链表 一、概念 拉链表是针对数据仓库设计中表存储数据的方式而定义的,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。 用处: 解决持续增长且存在一定时间时间范围内重复的数据 场景&#xff1…

ElementUI +++ Echarts面试题答案汇总

官网地址:http://element-cn.eleme.io/#/zh-CN ElementUI是一套基于VUE2.0的桌面端组件库,ElementUI提供了丰富的组件帮助开发人员快速构建功能强大、风格统一的页面。 ElementUi是怎么做表单验证的?在循环里对每个input验证怎么做呢&#x…

探索海洋世界,基于DETR(DEtection TRansformer)模型开发构建海洋场景下海洋生物检测识别分析系统

前面的博文中,开发实践过海底相关生物检测识别的项目,对于海洋场景下的海洋生物检测则很少有所涉及,这里本文的主要目的就是想要开发构建基于DETR的海洋场景下的海洋生物检测识别系统。 首先看下实例效果: DETR (DEtection TRans…

【机器学习笔记】 15 机器学习项目流程

机器学习的一般步骤 数据清洗 数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。与问卷审核不同,录入后的数据清理一般是由计算机而不是人工完成。 探索性数据分析(EDA 探索性数据…

Elasticsearch查询报错 Result window is too large

一现象: es数据分页查询前端提示系统异常,后端报错日志 二根本原因: 默认情况下,Elasticsearch 限制了 from size 参数的组合不能超过 10,000 条记录,用于防止查询大数据集时对系统资源的过度消耗 三解决办法&#…

沁恒CH32V30X学习笔记09---使用TIM 外部时钟1模式实现硬件计数

TIM 外部时钟1使用 定时器时钟 通过框图可知;外部时钟1模式下仅仅只有通道1 和通道2 可以输入脉冲 简单示例教程 void TIM1_ETRClockMode1_Init(void) {RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);TIM_CounterModeConfig(TIM1, TIM_CounterMode_Up)

机器学习---强化学习

1. 什么是强化学习 在连接主义学习中,在学习的方式有三种:非监督学习(unsupervised learning)、监督学习 (supervised leaning)和强化学习。监督学习也称为有导师的学习,需要外界存在一个“教师”对给定 输入提供应有的输出结果&#xff0…

Android 11.0 mtp在锁屏模式和息屏时禁止访问mtp文件夹功能实现

1.前言 在11.0的系统rom产品定制化开发中,由于系统对于mtp模式访问文件夹没有限制,就是在锁屏息屏状态下也是可以访问文件夹的,由于产品的需要 要求在锁屏和息屏的情况下,禁止访问文件夹,就是需要实现如图效果 2.mtp在锁屏模式和息屏时禁止访问mtp文件夹功能实现的核心…

前端自动生成二维码并长按识别跳转 Vue

下载arale-qrcode依赖&#xff1a; npm i arale-qrcode --save引用依赖&#xff1a; import AraleQRCode from "arale-qrcode";代码部分&#xff1a; <template><div class"container">// 生成二维码按钮<van-button click"getErwe…

【Vue3】路由传参的几种方式

路由导航有两种方式&#xff0c;分别是&#xff1a;声明式导航 和 编程式导航 参数分为query参数和params参数两种 声明式导航 query参数 一、路径字符串拼接(不推荐) 1.传参 在路由路径后直接拼接?参数名:参数值 &#xff0c;多组参数间使用&分隔。 <RouterLink …