如何用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
相关推荐
CodexDave19 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
一叶龙洲19 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
敖行客 Allthinker21 小时前
Parallels Ubuntu虚拟机项目如何让手机访问?完整解决方案
linux·运维·ubuntu
凌云C21 小时前
5G 协议体系与交互流程
网络协议
keyipatience1 天前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
元Y亨H1 天前
生产环境监控与故障应急处理(5-5-5 标准)指南
运维
j7~1 天前
【Linux】二十二.《Linux 信号机制完全指南:表示、捕捉与处理》
linux·信号处理·volatile·可入重函数·保存信号
踏月的造梦星球1 天前
达梦数据库执行计划与性能分析入门:EXPLAIN、AUTOTRACE 与 ET
服务器·数据库·oracle
观山岳五楼1 天前
Ubuntu 24 怎么使用Ubuntu 20 的镜像源
linux·运维·ubuntu
星夜夏空991 天前
网络编程(1)
服务器·网络