如何用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
相关推荐
潘yi.4 分钟前
Shell编程之正则表达式与文本处理器
linux·运维·正则表达式
涛涛讲AI12 分钟前
wkhtmltopdf 实现批量对网页转为图片的好工具,快速实现大量卡片制作
linux·服务器·windows·windows效率工具
破刺不会编程25 分钟前
什么是进程?
linux·运维·服务器
晓13131 小时前
第三章 爬虫提速、selenium模块、requests模块进阶(终)
爬虫·python·selenium·测试工具·http
laimaxgg1 小时前
Docker Hub 创建私人镜像仓库
运维·服务器·docker·容器
大数据魔法师1 小时前
Redis(一) - Redis安装教程(Windows + Linux)
linux·windows·redis
Y1anoohh1 小时前
驱动学习专栏--字符设备驱动篇--2_字符设备注册与注销
linux·c语言·驱动开发·学习
JA+1 小时前
在断网的时候,websocket 一直在CLOSING 状态
网络·websocket·网络协议
格格Code1 小时前
UDP概念特点+编程流程
网络·网络协议·udp
00后程序员张2 小时前
Flutter的自动化测试 python flutter编程
websocket·网络协议·tcp/ip·http·网络安全·https·udp