在公司的vpc网络中需要一个统一的对外提供服务的服务器叫proxy 其作用是统一入口,外界无法直接和业务服务器直接通信,而是通过proxy服务器进行服务转发。
目标是达到如下目的:
客户端=>(服务器反向代理=>)Web服务器
线上proxy配置
1 | server { |
关键点是 proxy_pass
proxy_pass 可以做的几件事是这样的:
本地不处理,交给后面处理
这样后面就可以用php, fastcgi, tomcat等处理
可以切换协议,比如从http切换至https
实际上在linux上还可以将底层切换至unix domain socket
// 这些设置主要是给业务服务器做认证的
proxy_http_version 1.1;
//这个proxy_set_header Host $host; $host就是nginx代理服务器,也就是客户端请求的host
proxy_set_header Host $host;
//任何逐段传输头都需要在 Connection 头中列出,这样才能让第一个代理知道必须处理它们且不转发这些头
proxy_set_header Connection “”;
//X-Forwarded-For 表示 Nginx 接收到的头,原样的转发过来(假如不转发,Web 服务器就不能获取这个头)
proxy_set_header X-Forwarded-For $remote_addr;
//转发的协议
proxy_set_header X-Forwarded-Proto https;