如何用nginx反代一个https的网站

最近笔者发现原本设置的一个反代无法使用了,查看后发现是后端服务器升级导致,现在必须使用https来访问,故而需要更改对应的nginx配置,趁此机会水一篇文章

一、【问题描述】

如何用nginx反代一个https的网站

二、【知识补充】

正向代理的本质是,给访问者戴个面具,这样访问者在网络中就只能被看到面具的部分,相当于隐藏访问者。

反向代理的本质是,给后端服务器换个统一的门面,这样在网络中,只知门面而不知里面服务员的名字,相当于隐藏后端服务器

三、【解决方法】

安装nginx并更改配置文件

bash 复制代码
# 如果没安装nginx
sudo apt install nginx       # ubuntu 系统 
sudo yum install nginx       # centos 系统

# 更改或新建nginx配置文件
sudo vi /etc/nginx/conf.d/mynginx.conf

> 在打开的文件中输入

bash 复制代码
server {
    listen 8081 ssl;    # 端口随意,如果有防火墙记得额外打开端口
    server_name _;
# 这是测试的自签证书,所以post反代服务器需要加上额外参数,verify=False
     ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
     ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

    location / {
        proxy_pass https://www.backendserver.com;
# set_header是设置请求头,如果有额外需要按照格式补充即可
        proxy_set_header Content-Type application/json;
        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;
        proxy_ssl_server_name on;
        proxy_ssl_verify off;
        proxy_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
    }
}

然后重启nginx服务

bash 复制代码
# 测试一下配置文件格式
sudo nginx -t
# 重启nginx服务
systemctl restart nginx
相关推荐
叼烟扛炮1 分钟前
Linux 学习笔记(二十九):进程信号(上)—— 信号捕捉与异步魔法
linux·运维·笔记·学习·1024程序员节
lingran__2 分钟前
Linux进程万字详解(四) | 进程地址空间深度剖析:虚拟内存、页表映射与缺页中断
linux·虚拟地址空间·虚拟内存·1024程序员节·页表·物理内存·缺页中断
wuminyu2 分钟前
JVM规范学习总结-Class文件结构
java·linux·c语言·jvm·c++
m0_547486663 分钟前
《Linux操作系统应用项目教程》全套PPT课件2026
linux·运维·操作系统
西索斯coding18 分钟前
qwen3.8-max 和 minimax-m3 改后端仓库实测复核:补丁通过率与调用成本别急着排冠军
linux·运维·ubuntu·ai
bluebonnet2729 分钟前
【docker】使用regctl免安装docker下载镜像
运维·docker·容器
Hello World . .41 分钟前
【嵌入式学习笔记 Day 1】
linux·数据结构·笔记
叼烟扛炮43 分钟前
Linux 学习笔记(三十一):线程概念、底层分页机制与初体验
linux·运维·服务器·笔记·学习·1024程序员节
星恒随风44 分钟前
Linux Socket UDP编程(一):手写UDP回显服务器与客户端,从socket、bind、recvfrom到网络字典服务器完整实战
linux·服务器·网络·笔记
H.莓飛1 小时前
【数据结构】归并与外排序
linux·服务器·c语言·开发语言·数据结构·visual studio