阅读量:0
最近笔者发现原本设置的一个反代无法使用了,查看后发现是后端服务器升级导致,现在必须使用https来访问,故而需要更改对应的nginx配置,趁此机会水一篇文章
一、【问题描述】
如何用nginx反代一个https的网站
二、【知识补充】
正向代理的本质是,给访问者戴个面具,这样访问者在网络中就只能被看到面具的部分,相当于隐藏访问者。
反向代理的本质是,给后端服务器换个统一的门面,这样在网络中,只知门面而不知里面服务员的名字,相当于隐藏后端服务器
三、【解决方法】
安装nginx并更改配置文件
# 如果没安装nginx sudo apt install nginx # ubuntu 系统 sudo yum install nginx # centos 系统 # 更改或新建nginx配置文件 sudo vi /etc/nginx/conf.d/mynginx.conf
> 在打开的文件中输入
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服务
# 测试一下配置文件格式 sudo nginx -t # 重启nginx服务 systemctl restart nginx