Nginx作为代理服务


一.代理:

Nginx作为代理:


正向代理,是在用户端的。比如需要访问某些国外网站,我们可能需要购买vpn。
并且vpn是在我们的用户浏览器端设置的(并不是在远端的服务器设置)。
浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回来。

反向代理是作用在服务器端的,是一个虚拟ip(VIP)。对于用户的一个请求,会转发到多个后端处理器中的一台来处理该具体请求。
大型网站都有DNS(域名解析服务器),load balance(负载均衡器)等。


Nginx代理模块:
proxy_pass URL
URL为要设置的被代理服务器的地址,包括传输协议、主机名称或IP地址加端口号、URI等要素


二. 配置代理

 nginx作为反代配置:  
  location / {
    root   /usr/share/nginx/html;
    #expires 1h;
    index  index.html index.htm;
    proxy_pass http://192.168.0.21:8090;    //请求其他机器的apache  
}

例:

三. 配置代理其他模块

location /   {
        root   /usr/share/nginx/html;  
        #expires 1h;  
        index  index.html index.htm;  
        proxy_pass http://192.168.0.21:8090;   //跳转配置  
        proxy_redirect default;
        proxy_set_header Host $http_host;  //允许重新定义或者添加发往后端服务器的请求头。   
        proxy_set_header X-Real-IP $remote_addr;  //获取用户真实ip
        proxy_connect_timeout 30;  //tcp请求超时时间 默认为60秒
        proxy_send_timeout 60;  //服务端向客户端传输数据的超时时间。
        proxy_read_timeout 60;  //该指令设置与代理服务器的读超时时间
        proxy_buffer_size 32k;  //设置缓冲区大小,从代理后端服务器取得的第一部分的响应内容,会放到这里. 
        proxy_buffering on;  //在 proxy_buffering 开启的时候,proxy_buffers 和 proxy_busy_buffers_size 才会起作用。
        proxy_buffers 4 128k;  //指定一个 request 的 buffer 的数量和大小。
        proxy_busy_buffers_size 256k;  //忙时 buffer 的最大值。一个客户端一次只能从一个 buffer 中读取数据的同时,剩下的 buffer 会被放到队列中,等待发送到客户端,这个 directive 指定在这个状态下的 buffer 的大小。  
        proxy_max_temp_file_size 256k;
}