nginx 反向代理 proxy_pass 及对比nginx与haproxy反向代理服务器功能、性能的优劣

1.使用 proxy 去请求另一个域名下的资源,如果跨域资源也部署在同一台机器上,我们甚至可以 proxy 到 127.0.0.1,比如:

location /api

{ proxy_pass http://127.0.0.1:1234;}

当客户端请求 /api 这个路径下的资源时服务器就会帮助我们去 127.0.0.1 的 1234 端口上取资源,解决了跨域的问题。proxy_pass 会将当前的 $uri 带过去

2.Nginx的反向代理负载均衡配置

upstream backend {

server 127.0.0.1:90 weight=1 max_fails=3 fail_timeout=30;

server 127.0.0.1:91 weight=5 max_fails=3 fail_timeout=30;

}

server {

listen 9090;

location / {

proxy_pass http://backend;

}

}

前端还是使用9090来监听,把请求转发到90和91端口。

如果让你选择负载均衡器,哪种情况你会选择哪种?

1.nginx 处理静态图片请求有优势

2.最核心的问题是代理负载均衡算法,比较少,没有session保持等功能,那就不如用haproxy

对比nginx说明haproxy反向代理服务器功能、性能的优劣
1、haproxy能够做http协议的反向代理,也可以提供基于端口监听服务的反向代理。具备心跳功能,同时能够提供负责均衡服务。

2、nginx只能做http协议的代理。不具备心跳检测功能。

3、在同样可行的http协议的代理下,两者性能基本一致。

参考:http://f.dataguru.cn/thread-527750-1-1.html

https://www.cnblogs.com/kevingrace/p/6249725.html