Nginx正向代理与反向代理

Posted Jack秦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx正向代理与反向代理相关的知识,希望对你有一定的参考价值。

 

1.正向代理:

  正向代理类似一个跳板机,代理访问外部资源。

典型应用:为在防火墙内的局域网客户端提供访问Internet的途径    如:IE例外设置代理服务器

正向代理配置实例:为不影响默认配置:添加一个虚拟主机:

    include        vhosts/*.conf;

vi proxy.conf

 

server{
resolver 8.8.8.8;
resolver_timeout 30s;
listen 8090;
server_name proxy.qinyj.top;
location / {
proxy_pass http://$http_host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
}
}

 2.反向代理:

  反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。典型用途是将 防火墙后面的服务器提供给Internet用户访问

   nginx支持配置反向代理,通过反向代理实现网站的负载均衡。这部分先写一个nginx的配置,后续再深入研究nginx的代理模块和负载均衡模块。

nginx通过proxy_pass 配置代理站点,upstream模块实现http负载均衡。

 server {

   ........

    upstream qinyujie { #定义负载均衡站点名称  
        server 192.168.0.161:80;
        server 192.168.0.162:80;    #后端真实ip一般指内网  
      }

        location / {
            proxy_pass http://qinyujie;    #配置代理站点或后端真实ip
            proxy_redirect off; 
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }

 }

 3.反向代理用做内网域名转发

编辑反向代理服务器配置文件:

vim /usr/local/nginx/conf/reverse-proxy.conf

 

server
{
    listen 80;
    server_name xxx123.tk;
    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.10.38:3000;#在浏览器中输入xxx123.tk的时候访问的内网服务器192.168.10.38的3000端口
    }
    access_log logs/xxx123.tk_access.log;
}

 

以上是关于Nginx正向代理与反向代理的主要内容,如果未能解决你的问题,请参考以下文章

nginx反向代理与正向代理

Nginx教程 正向代理与反向代理总结

nginx 正向代理与反向代理

Nginx的正向代理和反向代理

Nginx 学习 —— 正向代理与反向代理

关于Nginx的正向代理与反向代理