nginx一般用于实现反向代理和负载均衡,但nginx也可实现正向代理。 一个简单的单机配置sample : server { } 常见问题: 1、nginx upstream 目前只支持http 1.0,这意味着nginx和上游服务器之间的链接不能复用; 2、nginx与nginx upstream 建立链接后,nginx不会主动关闭链接,除非timeout或者对方主动关闭链接; 3、某些机器可以虚拟出多个ip,而此种配置方法不能绑定特定的ip; 这个可以试试proxy_bind方法来解决; 4、需要强大的dns服务器,若没有dns cache,不适合做大规模下载的代理服务; 5、某些服务仅仅支持http 1.0, 也就是说返回 responce中的http header中要求是绝对路径; 常用的解决办法: 1、若上游服务器全部使用短链接,没有问题;若上游服务器某些应答使用keep-alive,在nginx中重写request header中的connection字段,强制上游服务使用短链接; 2、同1。但得考虑优化一下,减少服务器的TIME_WAIT; 3、nginx从0.8.2开始支持proxy_bind方法,这样就可以启用多个服务来绑定多个ip,最后再启用一个中心服务来将请求路由到多个ip 上; 4、使用自己的dns cache,在request中加入特定字段,如(dnsed_ip),在nginx中对该字段进行解析,最后将代理的请求直接转发到ip上; 5、proxy_redirect 可以帮你做到。 |