nginx 反向代理技术

我花了一天时间寻找nginx伪静态时地址栏不跳转的方法,后来终于知道通过nginx的反向代理可以实现。于是又去学了nginx的反向代理和负载均衡。摘记一下要点。
参考 Nginx 常见应用技术指南[Nginx Tips] 第二版

负载均衡,英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行。
nginx的负载均衡主要是通过 proxy_pass 实现的。

location ~ ^/(test|images|styles)/
{
proxy_redirect off;
proxy_set_header Host www.test.com;
proxy_pass http://192.168.1.2:8080;
}

上面代码服务端用http://192.168.1.2:8080分担了当前www.test.com页面的test|images|styles目录访问。

经过研究发现 rewrite中 包含http://情况做的转向,地址栏中的地址都是会显示跳转后地址的。
用proxy_pass事先地址不跳转的例子,详见:nginx rewrite 实现二级域名跳转

另外,做反向代理时,常常需要用 proxy_set_header和X-Forwarded-For 传递访问者真实的IP

这里用的方法是 加入下面参数。

proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;

Leave a Comment