Nginx 配置 SSL(HTTPS)详解
Nginx作为一款高性能的HTTP和反向代理服务器,自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。
随着互联网安全性的日益重要,HTTPS协议逐渐成为网站加密通信的标配。Nginx作为一款高性能的HTTP和反向代理服务器,自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。

使用Nginx进行反向代理的时候,对于正常的http;流量使用 location 块并且配置 proxy_pass 转发即可,但是如果是https的流量,使用Nginx进行反向代理的时候,直接使用 proxy_pass 会出现各种报错的情况,包括不限于:
- 502 Bad Getway
- ERR_SSL_PROTOCOL_ERROR
- ERR_CONNECTION_RESET
我本身遇到的ERR_SSL_PROTOCOL_ERROR错误比较多,这是因为在配置Nginx的时候,对于443端口本身的侦听没有带上 ssl 关键字,所以会报SSL协议错误,但是如果加上ssl,没有给证书位置,也是不行
对于转发到8080端口,如果配置不对(比如后端服务是http,结果配置了https),会出现502 Bad Getway
-
proxy_pass后边的要写IP地址,不能写域名,否则还要解决域名解析的问题,有据称如果写localhost的,访问速度会变慢,是因为需要访问host文件解析localhost
-
响应8080端口的server块,也要注意,也要写成侦听ssl,配置好证书位置
upstream plan-uat {
server 10.202.159.74:8080 max_fails=3 fail_timeout=10 weight=1;
}server {
server_name plan-uat.ztoky.cn;
listen 443 ssl ;
ssl_certificate ssl/ztoky.cn.crt;
ssl_certificate_key ssl/ztoky.cn.key;
access_log logs/plan-uat.ztoky.cn.access.log json;location /plan/ {proxy_pass http://plan-uat/;include proxy.conf;}}
检查 linux 服务器上的 nginx 是否安装 ssl 模块
nginx 安装目录,下面有个 sbin 文件夹,来到 sbin 目录下执行 ./nginx -V命令,注意是大写的 V,小写的 v 只会展示 nginx 的版本号信息。执行完出现下图圈红的这些信息说明 ssl 模块已经安装过了。可以忽略下文的 ssl 模块安装的相关内容,直接看 nginx 配置的内容。
cd /usr/local/nginx/sbin
./nginx -V
为 nginx 安装 ssl 模块
如果没有安装 ssl 模块,即使你成功的配置好 https 的相关配置,网站也依旧不能使用 https,会提示诸如:无法提供安全连接、TLS协议不支持等问题。ssl 模块的安装是为了能让后端接口得以使用 https 的方式调用。找到我们的 nginx 安装解压包,我这里是放在 /usr/local/software 目录下,然后执行如下命令进入到 nginx-1.18.0 目录下。
cd /usr/local/nginx-1.18.0
来到 ngixn-1.18.0 目录 然后依次执行如下这命令,配置了 ssl 模块,使用 make 命令重新编译
./configure --with-http_ssl_module
make

进入 objs 目录,会看到 nginx 的可执行文件

注意,不能使用 make install 命令,这样会导致重新安装 nginx,此时当前目录就会出现 objs 目录
替换 nginx 可执行文件,我们使用这个新的 nginx 可执行文件 替换 sbin 目录下的 nginx 可执行文件
cp ./nginx /usr/local/nginx/sbin/
系统会询问你是否覆盖,输入 y 即可,如果覆盖失败,多半是因为你的 nginx 还在启动中,先将 nginx 关闭即可,再次检验是否安装 ssl 模块,进入 nginx 目录
cd /usr/local/nginx/sbin/
执行命令
./nginx -V
此时就能看到 ssl 模块已经安装成功了

准备SSL证书
首先,我们需要准备SSL证书。你可以选择从证书颁发机构(CA)购买商业证书,也可以自己生成自签名证书。自签名证书虽然免费,但不会被浏览器信任,仅适用于测试环境。
如果你选择购买商业证书,通常会获得以下文件:
- 证书文件(例如:example.com.crt)
- 私钥文件(例如:example.com.key)
- 中间证书文件(如果有的话)
配置Nginx SSL 启用443端口
(1) 打开Nginx配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf。
(2) 在http块中,配置SSL相关参数。示例如下:
http {...server {listen 443 ssl;server_name example.com;ssl_certificate /path/to/example.com.crt; # 证书文件路径ssl_certificate_key /path/to/example.com.key; # 私钥文件路径# 如果有中间证书,也需要配置ssl_trusted_certificate /path/to/intermediate.crt;# 其他SSL配置参数ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_protocols TLSv1.2 TLSv1.3; # 支持的协议版本ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL; # 使用此加密套件ssl_prefer_server_ciphers on; # 优先使用服务器端的加密套件# 其他server配置...}...
}
测试HTTPS访问
现在,你的Nginx服务器已经配置了SSL,可以通过HTTPS协议访问了。在浏览器中输入https://example.com,检查是否能够成功访问并显示安全的连接标识(如绿色锁头)。
此外,你还可以使用命令行工具(如openssl或curl)来测试HTTPS连接和证书的有效性。
配置代理
使用proxy_pass指令来配置代理。以下是一个示例配置,将HTTPS请求代理到另一个HTTPS服务器:(注意这里的后端是HTTPS的服务)
后端服务是https类型的proxy_pass https://your.backend.server;
后端服务是http类型的 proxy_pass http://your.backend.server;
server {??# 监听443端口,处理所有HTTPS请求
??listen 443 ssl;??server_name your.domain.com;??# SSL配置
? ssl_certificate /path/to/your/cert.pem;
??ssl_certificate_key /path/to/your/private.key;
??ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
??ssl_ciphers HIGH:!aNULL:!MD5;??# 代理配置,将HTTPS请求代理到另一个HTTPS服务器
??location / {
????proxy_pass https://your.backend.server;
??}
}
以上配置假设您的域名是your.domain.com,代理目标是您的后端HTTPS服务器(例如https://your.backend.server)。请记住将路径和参数适当地配置为您的特定场景。
相关文章:
Nginx 配置 SSL(HTTPS)详解
Nginx作为一款高性能的HTTP和反向代理服务器,自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。 随着互联网安全性的日益重要,HTTPS协议逐渐成为网站加密通信的标配。Nginx作为一款高性能的HTTP和反向代理服务…...
论文解读之Generative Dense Retrieval: Memory Can Be a Burden
本次论文解读,博主带来生成式稠密检索:记忆可能成为一种负担的论文分享 一、简介 生成式检索根据给定的查询,自回归地检索相关的文档标识符,在小规模的文档库中表现不错,通过使用模型参数记忆文档库,生成…...
RTC:实时时钟
RTC:实时时钟 1、实时时钟2、闹钟中断3、秒中断4、输出功能5、BKP的读写6、BKP的侵入事件 1、实时时钟 ①RTC.c #include "RTC.h"/*** brief:RTC初始化函数*/ RCC_PeriphCLKInitTypeDef RTCPeriphClkInit; //RTC时钟配置结构体 RTC_HandleT…...
mqtt python rtsp拉流图传测试
GitHub - robmarkcole/mqtt-camera-streamer: Stream images from a connected camera over MQTT, view using Streamlit, record to file and sqlite 用这个项目,按照readme配置,把config里面的ip配置成接收端的ip地址。 该装的包装完之后,…...
win32汇编环境,对话框程序中通过资源显示bmp图像
;运行效果 ;win32汇编环境,对话框程序中通过资源显示bmp图像 ;通过资源的方式,会把图像固定在exe文件里,会变大。通过读取文件的方式,没有固定在exe文件里,也可以随时换图像文件,所以exe文件较小 ;直接抄进RadAsm可编译…...
《探索人工智能的多元学派:符号主义、连接主义与行为主义》
在人工智能发展的进程中,不同学派从各自的角度诠释着智能的本质。其中符号主义、连接主义和行为主义学派占据着重要地位,它们以独特的方式推动着人工智能的发展。 符号主义学派:逻辑推理的核心 符号主义学派认为人工智能源于对逻辑符号的处…...
2024年终总结及计划
24年收获不少,早就想总结下,但是有的问题不想去思考,也不想去面对,就晚了几天,趁着加班总结反思下。 一、计划完成情况 1、生活 ①运动:继续坚持每周慢跑15公里,这是必须要做的。另外&#x…...
数据挖掘——关联规则挖掘
数据挖掘——关联数据挖掘 关联数据挖掘关联规则关联规则挖掘问题:具体挖掘过程Apriori 产生关联规则 关联数据挖掘 关联分析用于发现隐藏在大型数据集中的令人感兴趣的联系,所发现的模式通常用关联规则或频繁项集的形式表示。 关联规则反映一个事物与…...
JVM实战—9.线上FGC的几种案例
大纲 1.如何优化每秒十万QPS的社交APP的JVM性能(增加S区大小 优化内存碎片) 2.如何对垂直电商APP后台系统的FGC进行深度优化(定制JVM参数模版) 3.不合理设置JVM参数可能导致频繁FGC(优化反射的软引用被每次YGC回收) 4.线上系统每天数十次FGC导致频繁卡顿的优化(大对象问题…...
STM32-BKP备份寄存器RTC实时时钟
一、原理 Unix: 一些系统是使用32bit有符号数存储,实际范围为-2,147,483,648到2,147,483,647即~ 经过计算int32数据会在2038年1月19日溢出,可以看到转换的为北京时间。 STM32的时间戳为无符号时间戳。 我们需要把秒计数器的时间通过计算…...
HTML-文本标签
历史上,网页的主要功能是文本展示。所以,HTML 提供了大量的文本处理标签。 1.<div> <div>是一个通用标签,表示一个区块(division)。它没有语义,如果网页需要一个块级元素容器,又没…...
香橙派5plus单独编译并安装linux内核无法启动的原因分析与解决记录
1 说明 我依照官方手册编译单独编译linux内核,安装后重启出现内核启动失败的问题,编译和安装步骤如下:# 1. 克隆源码 git clone --depth1 -b orange-pi-6.1-rk35xx https://github.com/orangepi-xunlong/linux-orangepi# 2 配置源码 make rockchip_linu…...
嵌入式应用软件开发中C语言方向面试题
嵌入式应用软件开发中C语言方向面试题随笔 前言一、C语言基础二、嵌入式开发相关三、硬件相关知识五、实际编程问题前言 做嵌入式开发这么多年了,简单记录下C语言方向常见面试题,这里是应用软件方向的。 一、C语言基础 C语言的指针与数组的区别是什么?指针:指针是一个变量…...
linux 系统配置ip
最常见的配置方法是通过 DHCP 获取动态 IP 地址,或者手动配置一个静态 IP 地址。下面我将详细说明这两种常见的配置方法。 通过 DHCP 自动获取 IP 地址 如果你的开发板连接到网络(比如通过网线或者 Wi-Fi),并且网络环境支持 DHCP…...
低代码开发:开启企业数智化转型“快捷键”
一、低代码开发浪潮来袭,企业转型正当时 在当今数字化飞速发展的时代,低代码开发已如汹涌浪潮,席卷全球。从国际市场来看,诸多企业巨头纷纷布局低代码领域,像微软的 PowerApps、OutSystems 等平台,凭借强大…...
Tailwind CSS 实战:性能优化最佳实践
在现代网页开发中,性能优化就像是一场精心策划的马拉松。记得在一个电商项目中,我们通过一系列的性能优化措施,让页面加载时间减少了 60%,转化率提升了 25%。今天,我想和大家分享如何使用 Tailwind CSS 进行性能优化。 优化理念 性能优化就像是在打磨一块璞玉。我们需要通过各…...
[redux] useDispatch的两种用法
先重写2个方法先, 方便ts类型推导,如果你看不懂为什么这么写, 先看我这篇 [redux] ts声明useSelector和useDispatch-CSDN博客 export type RootState ReturnType<typeof store.getState>; export type AppDispatch typeof store.dispatch; export const useAppDispat…...
Postgresql 命令还原数据库
因为PgAdmin打不开,但是数据库已经安装成功了,这里借助Pg命令来还原数据库 C:\Program Files\PostgreSQL\15\bin\psql.exe #链接数据库 psql -U postgres -p 5432#创建数据库 CREATE DATABASE "数据库名称"WITHOWNER postgresENCODING UTF8…...
电脑找不到mfc110.dll文件要如何解决?Windows缺失mfc110.dll文件快速解决方法
一、mfc110.dll文件的重要性 mfc110.dll,全称Microsoft Foundation Class Library 110,是Microsoft Visual C Redistributable for Visual Studio 2012的一部分。这个动态链接库(DLL)文件对于支持基于MFC(Microsoft F…...
Elasticsearch与数据库数据一致性:最佳实践与解决方案
在现代应用程序中,Elasticsearch(ES)作为一个高效的分布式搜索引擎,常常与数据库一同使用,以提供强大的搜索、分析和数据可视化功能。然而,数据库和Elasticsearch之间的同步与一致性常常成为一个挑战。如何…...
Unity Il2CppDumper原理与实战:解析元数据与二进制对齐
1. 这不是“破解工具”,而是Unity开发者该懂的二进制真相课 你刚在Unity Asset Store下载了一个功能惊艳的插件,却在打包iOS后发现部分逻辑失效;或者接手一个没有源码的旧项目,只有一堆 .dll 和 .so 文件,连主入口…...
T型翼/尾板导向的穿浪双体船姿态控制【附代码】
✨ 长期致力于穿浪双体船、T型翼、尾板、多自由度姿态控制、舒适性评估研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)动态水翼升力模型与耦合运动方…...
Win10家庭版别再卡了!保姆级教程:手动修复gpedit.msc路径,彻底关闭Antimalware Service
Win10家庭版性能优化实战:精准修复组策略路径与系统服务调优每次游戏激战正酣时突然卡顿,或是视频渲染到关键时刻系统响应迟缓,很多Win10家庭版用户都遭遇过这类困扰。任务管理器里那个名为"Antimalware Service Executable"的进程…...
服务器日志分析实战:用Python追踪HTTP 404错误并可视化异常频率
作为一名爬虫开发者或网站运维人员,服务器日志就像飞机的“黑匣子”——它记录了每个请求的来龙去脉。而404错误(页面未找到)尤其值得关注:它可能是用户输错了网址,可能是你爬虫的URL构造逻辑有漏洞,也可能是网站改版后旧的链接失效了。更严重的是,大量突然涌出的404请求…...
荣耀出征官方网站下载正版手游 翅膀养成细节玩法全方位讲解
玩荣耀出征的玩家都清楚,翅膀不仅是角色的颜值象征,更是提升整体战力的核心途径。很多新手玩家只顾着升级、刷装备,完全忽略翅膀养成,导致等级很高但战力始终上不去。还有不少玩家胡乱合成、盲目进阶,浪费了大量稀有翅…...
告别元素变动导致的报错:探索自动化测试脚本的 AI“自愈”能力
前言:一个所有测试人都经历过的噩梦 周三晚上十一点,CI/CD流水线再次亮起红灯。 你打开日志,满屏的NoSuchElementException扑面而来。仔细一看——前端团队在昨天的版本中重构了登录页面的DOM结构,原本的#login-btn变成了#signin-button-v2,30个测试用例因此全军覆没。 …...
脉冲神经网络加速器设计与边缘计算优化
1. 脉冲神经网络加速器的设计挑战与突破在边缘计算领域,脉冲神经网络(SNN)正以其独特的生物启发特性引发新一轮技术变革。与传统人工神经网络(ANN)相比,SNN通过离散的脉冲信号传递信息,模拟生物神经元的工作机制,理论上可实现超低…...
从模糊到电影级景深:Midjourney + Topaz Gigapixel联调方案(含LUT预设包+PSD分层模板)
更多请点击: https://codechina.net 第一章:从模糊到电影级景深:Midjourney Topaz Gigapixel联调方案(含LUT预设包PSD分层模板) 当Midjourney生成的图像存在主体边缘柔化、背景层次缺失或分辨率不足等问题时…...
基于树莓派打造万能遥控器:从硬件选型到Web控制界面全解析
1. 项目概述:打造一个能“学习”的万能遥控器家里遥控器越来越多,电视、空调、风扇、灯带……每个设备都配一个,找起来麻烦,用起来也乱。市面上所谓的“万能遥控器”其实并不万能,它内置的码库有限,很多小众…...
AWS DevOps Agent 完全指南
AWS DevOps Agent 是 AWS 推出的前沿 AI 运维代理,自主调查和解决事件、持续预防故障、提升系统可靠性。本文档覆盖从原理到实战的全生命周期管理。 一、定位与价值 一句话定义 AWS DevOps Agent = AI 驱动的 SRE 队友,724 自主调查告警、定位根因、生成修复方案、预防未来…...
