精华内容
下载资源
问答
  • 正向代理和反向代理的区别。如何用Nginx实现正向代理和反向代理,并且在Nginx做代理服务器时,向后端服务器传递客户端真实IP地址。

    一、正向代理和反向代理的区别

    1.1、正向代理

    正向代理
    正向代理一般处于用户一边,代替用户访问原本访问不到的资源,而用户直接请求的仍然是Web服务器。

    1.2、反向代理

    反向代理
    反向代理一般处于Web服务器一边,通常与Web服务器同处一个局域网内,代替一个或多个Web服务器接收用户请求,并将Web服务器的响应返回给用户。用户不知道反向代理服务器的存在,也不知道自己访问的其实是代理服务器。反向代理可以很好地隐藏Web服务器真实地址。

    二、Nginx代理相关配置

    配置项说明
    proxy_pass指定将请求转发到哪个后端服务器,格式为URL
    proxy_connect_timeoutNginx从接收请求到连接上后端服务器的最长等待时间
    proxy_read_timeout从后端服务器接收响应的最长等待时间
    proxy_send_timeout向后端服务器发送请求数据的最长等待时间
    proxy_http_versionHTTP协议版本,如HTTP/1.1
    proxy_set_header先修改请求头的值,再将请求发送给后端服务器
    proxy_buffering是否启用代理缓冲区(on/off)。如果禁用,代理一接收到内容就同步发送给客户端
    proxy_max_temp_file_size在启用代理缓冲区时,如果数据内容超过缓冲区大小,可以将数据存放到硬盘上的大小。为0时,将禁止往硬盘上写数据
    proxy_buffer_size设置缓冲区大小,用于缓冲后端服务器响应的头部信息。默认值是proxy_buffer_size 4k/8k
    proxy_buffers响应上游服务器的缓冲数量和大小。默认值是proxy_buffers 8 4k/8k
    proxy_busy_buffers_size分配给发送客户端响应的缓冲区大小。通常设置为proxy_buffer_size的2倍
    gzip是否启用数据压缩(on/off)
    gzip_static预读gzip功能(on/off)
    gzip_comp_level数据压缩等级1~9
    gzip_http_versionHTTP协议版本,如HTTP/1.1
    gzip_types除了默认的text/html外,启用压缩的文件类型,在mime.types中对应查找
    gzip_min_length超过这个值的数据才会被压缩
    gzip_buffers压缩数据使用的缓冲数量和大小

    三、使用Nginx实现正向代理

    实验环境中各服务器的角色:

    IP地址角色
    192.168.18.1Windows客户端
    192.168.18.131代理服务器
    192.168.18.132Web服务器

    3.1、构建一个Web服务器

    在192.168.18.132上部署Nginx构建一个Web服务器,且仅允许代理服务器192.168.18.131访问,配置如下:

    server {
        listen 80;
        server_name 192.168.18.132;
        access_log /usr/local/nginx/logs/access.log main;
        error_log /usr/local/nginx/logs/error.log;
        location / {
            root /usr/local/nginx/html/a;
            index index.html index.htm;
            allow 192.168.18.131;
            deny all;
        }
        error_page 404 /40x.html;
        location /40x.html {
            return 404 "Not Found!";
        }
    }
    

    编辑一个HTML文件,内容如下:

    # cat /usr/local/nginx/html/a/index.html 
    <h2>Server: 192.168.18.132</h2>
    

    在代理服务器192.168.18.131上访问测试:

    # curl 192.168.18.132
    <h2>Server: 192.168.18.132</h2>
    

    在Windows上访问测试:

    C:\Users\Administrator>curl 192.168.18.132 --head
    HTTP/1.1 403 Forbidden
    

    3.2、部署正向代理

    在192.168.18.131上部署正向代理服务,然后在Windows上指定通过代理服务器访问Web服务器。
    正向代理服务配置:

    server {
        listen 80;
        location / {
            proxy_pass http://$host$request_uri;
        }
    }
    

    在Windows上通过代理服务器再次访问Web服务器:

    C:\Users\Administrator>curl -x 192.168.18.131:80 192.168.18.132
    <h2>Server: 192.168.18.132</h2>
    

    四、Nginx做反向代理

    仍然使用192.168.18.132的Web服务器做测试。将192.168.18.131的正向代理改为反向代理,配置如下:

    server {
        listen 80;
        server_name 192.168.18.131;
        location / {
            proxy_pass http://192.168.18.132;
        }
    }
    

    在Windows上做访问测试:

    C:\Users\Administrator>curl 192.168.18.131
    <h2>Server: 192.168.18.132</h2>
    

    五、传递客户端真实IP

    在使用代理服务器时,由于客户端不是直接连接到Web服务器的,所以Web服务器一般不能从客户端直接获取信息。需要在代理服务器上做相应的配置向Web服务器传递客户端信息,如客户端的真实IP地址等。
    在Nginx做代理服务器时,通常需要做如下配置:

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    

    这两行配置可以放在Nginx的http {}配置段中,作为全局参数。也可以放在单独的location中作部分参数。Nginx做反向代理时的典型配置如下:

    location / {
        proxy_pass http://192.168.18.132:80;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for;
    }
    

    如果用户直接访问Nginx或反向代理服务器,则X-Forwarded-For(XFF)记录用户真实IP。如果用户到Web服务器之间有一层或多层代理,并且代理没有使用XFF,那XFF列表的第一位记录离用户最近的代理IP,最后的Nginx反向代理将其上一级代理的IP追加到XFF列表末尾,自身的IP将被记录到remoteAddress中。XFF在请求头中可以被伪造,remoteAddress则无法伪造。
    X-Real-IP是一个自定义头部字段,通常被代理用来记录与它产生TCP连接的设备 IP,这个设备可能是其他代理,也可能是真正的请求端。

    展开全文
  • 正向代理是一个位于客户端原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。...

    1.正向代理的概念

    正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

    2.反向代理的概念

    反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。

    简单的区别方法:正向代理就是我们在浏览器可以设置的代理服务器,主动权在浏览者手里。比如我们有时候要查阅一些资料,被国内墙掉了,这时候我可以在国外的服务器上搭建一个nginx正向代理服务器,然后我们就可以通过浏览器设置代理服务器,来翻墙了。反向代理,是浏览者不知情的,服务器端自己假设的。

    更加细致的分析:http://z00w00.blog.51cto.com/515114/1031287

    下面以nginx为例子来搭建正向代理服务器反向代理服务器

    1.nginx正向代理配置

    1.  server{

    2.          resolver 8.8.8.8;

    3.          resolver_timeout 30s;

    4.          listen 82;

    5.          location / {

    6.                  proxy_passhttp://$http_host$request_uri;

    7.                  proxy_set_header Host $http_host;

    8.                  proxy_buffers 2564k;

    9.                  proxy_max_temp_file_size 0;

    10.                 proxy_connect_timeout 30;

    11.                 proxy_cache_valid 20030210m;

    12.                 proxy_cache_valid 3011h;

    13.                 proxy_cache_valid any 1m;

    14.         }

    15. }

    1、不能有hostname 

    2、必须有resolverdns,即上面的8.8.8.8,超时时间(30秒)可选。 

    3、配置正向代理参数,均是由 Nginx 变量组成。 

    proxy_pass $scheme://$host$request_uri;  

    proxy_set_header Host $http_host;  

    4、配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间。  

    proxy_buffers 256 4k;  

    proxy_max_temp_file_size 0;  

    proxy_connect_timeout 30;  

    5、配置代理服务器 Http 状态缓存时间。  

    proxy_cache_valid 200 302 10m;  

    proxy_cache_valid 301 1h;  

    proxy_cache_valid any 1m; 

    配置好后,重启nginx,以浏览器为例,要使用这个代理服务器,则只需将浏览器代理设置为http://+服务器ip地址+:+8282是刚刚设置的端口号)即可使用了。

    2.nginx反向代理服务器的配置

    反向代理参考地址:

    http://liuyu.blog.51cto.com/183345/166381/

    http://www.blogjava.net/xiaomage234/archive/2011/09/08/358247.html (更加清晰点)

    http://blog.csdn.net/chanya/article/details/7745459

    这里我更加简洁的小结下,需要看完整版的,建议点击上面的链接。

    下面是以负载均衡为例子的反向代理。

    1.  http {

    2.  #   省略了前面一般的配置,直接从负载均衡这里开始

    3.  #   设置地址池,后端3台服务器

    4.      upstreamhttp_server_pool {

    5.          server 192.168.1.2:8080 weight=2 max_fails=2 fail_timeout=30s;

    6.          server 192.168.1.3:8080 weight=3 max_fails=2 fail_timeout=30s;

    7.          server 192.168.1.4:8080 weight=4 max_fails=2 fail_timeout=30s;

    8.      }

    9.  #   一个虚拟主机,用来反向代理http_server_pool这组服务器

    10.     server{

    11.         listen       80;

    12. #           外网访问的域名       

    13.         server_name  www.test.com;

    14.         location / {

    15. #           后端服务器返回500 503 404错误,自动请求转发到upstream池中另一台服务器

    16.             proxy_next_upstream error timeoutinvalid_header http_500 http_503 http_404;

    17.             proxy_pass http://http_server_pool;

    18.             proxy_set_header Host www.test.com;

    19.             proxy_set_header X-Real-IP $remote_addr;

    20.             proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

    21.         }

    22.         access_log  logs/www.test.com.access.log  combined;

    23.     }

    24. }

    最简单的反向代理演示(在一台服务器上做代理服务器,将http请求转发到另一台IIS服务器上,通过二级域名形式访问。)编辑vim nginx.conf

    1.  server {

    2.      listen    80;

    3.      server_nametest.zhoumengkang.com;

    4.      location/ {

    5.          proxy_pass http://121.199.**.*:80;

    6.      }

    7.  }

     

    展开全文
  • tengine(nginx)正向代理和反向代理

    千次阅读 2017-09-18 21:43:42
    今天搞了一下tengine(nginx)正向代理和反向代理,简单总结一下。 说到正向代理和反向代理不得不提一下iptables的DNATSNAT,每次遇到内网去访问公网或者公网访问内网的时候就会第一时间想到iptables的NAT。 DNAT:

    今天搞了一下tengine(nginx)正向代理和反向代理,简单总结一下。

    说到正向代理和反向代理不得不提一下iptables的DNAT和SNAT,每次遇到内网去访问公网或者公网访问内网的时候就会第一时间想到iptables的NAT。

    SNAT:


    关于从外网回的包,iptables具有状态跟踪,就不需要我们自己专门为回包设置策略了。

    DNAT:


    关于DNAT经常用到端口转发,比如不想其他人直接访问你的22端口(ssh服务),就可以做个端口转发,从1322转到22上,这样其他人就能通过1322访问你的ssh服务了。

     在你的服务器执行
     iptables -t nat -A PREROUTING -p tcp  -d 192.168.4.177 --dport 1322 -j DNAT --to 192.168.4.177:22
     上面这条命令远程机器可以通过访问1322端口访问你的ssh的服务,但是本机不能通过1322访问ssh服务,
     如果有上面的需求,请添加
     iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 1322 -j DNAT --to 127.0.0.1:22

    这里简单提一下,具体iptables,可以看一下大神的链接:

    https://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html#TRAVERSINGGENERAL

    http://www.cnblogs.com/metoy/p/4320813.html

    http://www.360doc.com/content/15/0122/17/18578054_442885253.shtml

    ===============================================================================================

    下面来说说tengine/nginx的代理,iptables做nat有个条件就是该主机必须是网关或者是内网机器可以默认路由到该主机,如果不做默认路由,一条条的加路由不太现实,因为外网域名对应的主机ip可能是动态的。可以用nginx做代理实现内外网访问。

    正向代理:

    这样内网的机器就可以代理访问外网了。

    ################nginx.conf文件
    user   nginx;
    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    dso {
        load ngx_http_rewrite_module.so;
        load ngx_http_access_module.so;
        load ngx_http_concat_module.so;
        load ngx_http_limit_conn_module.so;
        load ngx_http_limit_req_module.so;
        load ngx_http_sysguard_module.so;
        load ngx_http_upstream_session_sticky_module.so;
        load ngx_http_trim_filter_module.so;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        sendfile        on;
        keepalive_timeout  65;
        include /app/nginx/conf.d/*.conf;#注意这里的目录
    }
    创建上面的目录,在该目录下创建任意文件以.conf为名:

    ##conf.d下文件以文件.conf结尾
    server {
        listen 端口;#server的端口
        server_name 主机IP;
        resolver 主机deDNS;#这个可以通过 /etc/resolv.conf文件查看
        resolver_timeout 5s;
        location / {
            proxy_pass $scheme://$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;
        }
    }
    重启nginx/tengine

    #客户端添加
    export http_proxy=10.10.10.10:80 #可以通过no_proxy排除不走代理的机器
    curl www.baidu.com #应该就能通了
    如果是tomcat程序的话,需要修改tomcat启动参数,这样tomcat程序才能通过代理访问外网
    #nonProxyHosts是不走代理的IP,catalina.sh
    -Dhttp.proxyHost=10.10.10.10 -Dhttp.proxyPort=80 -Dhttp.nonProxyHosts=localhost|127.0.0.*|10.14.*
    

    http://www.cnblogs.com/inteliot/archive/2013/01/11/2855907.html(不错的例子)

    反向代理:


    这样外网机器就能访问内网了。

    ######nginx.conf
    user   nginx;
    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    dso {
        load ngx_http_rewrite_module.so;
        load ngx_http_access_module.so;
        load ngx_http_concat_module.so;
        load ngx_http_limit_conn_module.so;
        load ngx_http_limit_req_module.so;
        load ngx_http_sysguard_module.so;
        load ngx_http_upstream_session_sticky_module.so;
        load ngx_http_trim_filter_module.so;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        sendfile        on;
        keepalive_timeout  65;
        include /app/nginx/conf.d/*.conf;#注意这个目录,后面要添加的
    }
    创建上面提到目录,并在下面创建任意名字以.conf结尾的文件
    upstream  tomcatproxy {
        consistent_hash $request_uri;
        server   IP:port weight=1;
        server   IP:port weight=1;
        server   IP:prt weight=1;
        session_sticky;
        check interval=3000 rise=2 fall=5 timeout=1000 type=http;
        check_http_send "GET   /OSN/ESBStatus  HTTP/1.0\r\nconnection: keep-alive\r\n\r\n";
        check_http_expect_alive http_2xx http_3xx;
    }
    server {
        listen       8001;
        server_name  主机IP;
        location / {
            root   /app/nginx/html;
            index  index.html index.htm;
        }
    
    
        location ~ status {
                check_status;
                access_log   off;
                          }
        location /API {
                proxy_pass http://tomcatproxy/OSN;#这里要和upstream对应
            }
        error_page   501 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
    
    重启tengine(nginx)

    通过外网应该能访问了。

    #具体tengine的参数可以上tengine官网查看,都是中文,再见

    展开全文
  • Nginx正向代理和反向代理 Nginx服务的一个重要功能——

    Nginx的正向代理和反向代理

    Nginx服务的一个重要功能——代理服务。在这里我们还得搞懂代理服务中正向代理和反向代理的区别,以及怎么使用他们,下面会进行讲解。

    正向代理简介

    正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

    反向代理简介

    反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

    正向代理的使用
    指令作用
    resolveraddress [valid=time]用于指定DNS服务器的IP地址。address=DNS服务器的IP地址(支持IPv6地址),time=设置数据包在网络中的有效时间,如:resolver 8.8.8.8 114.114.114.114 valid=30s;
    resolver_timeouttime用于设置DNS服务器域名解析超时时间,time=超时时间
    proxy_passURL用于设置代理服务器的协议和地址,URL=代理服务器的协议和地址,如:proxy_pass http://$http_host$request_uri; 其中$http_host和$request_uri为Nginx内置变量

    实例

    vim /usr/local/nginx/conf/nginx.conf
    添加:
    server
    {
    	resolver 8.8.8.8;
    	listen 81;
    	location /
    	{
    		proxy_pass http://$http_host$request_uri;
    	}
    }
    解释:
    #设置DNS服务器地址为8.8.8.8,使用默认的53端口作为DNS服务器的端口,代理服务的监听端口为81,Nginx接收到的所有请求都由location模块处理
    

    注意:Nginx正向代理不支持代理HTTPS协议的站点,不要在正向代理的server块中出现server_name指令。

    反向代理的使用
    指令作用
    proxy_passURL设置被代理服务器的地址,可以是主机名称、IP地址加端口号和UNIX-domain套接字形式。如:proxy_pass http://www.baidu.com/abc/、proxy_pass http://192.168.1.108:8080/abc/、proxy_pass http://unix:/tmp/abc.socket:/abc/。proxy_pass和upstream搭配使用时,看upstream中的server有没有带协议地址,没有就在proxy_pass中带,如:proxy_pass http://upstream_abc;
    proxy_hide_headerfield设置Nginx服务器在发送HTTP响应时,隐藏一些头部信息。field=需要隐藏的头部信息。
    proxy_pass_headerfield默认情况下Nginx在发送响应报文时,报文头中不包含“Date”、“Server”、“X-Accel”等来自代理服务器的头部信息。该指令可以设置这些头部信息已被发送。field=需要发送的头部。
    proxy_pass_request_bodyon | off是否将客户端请求的请求体发送给代理服务器。默认值为on(开启)。
    proxy_pass_request_headerson | off是否将客户端请求的请求头发送给代理服务器。默认值为on(开启)。
    proxy_set_headerfield value可以更改Nginx服务器接收到的客户端请求的请求头信息,然后将新的请求头发送给被代理服务器。field=要更改的信息所在的头域。value=更改的值,支持使用文本、变量或者变量的组合。
    proxy_set_bodyvalue可以更改Nginx服务器接收到的客户端请求的请求体信息,然后将新的请求体发送给被代理服务器。value=为更改的信息,支持使用文本、变量或者变量的组合。
    proxy_bindaddress强制将与代理主机的连接绑定到指定的IP地址。address=指定主机的IP地址。
    proxy_connect_timeouttime设置Nginx服务器与后端被代理服务器尝试建立连接的超时时间。time=超时时间,默认为60s。
    proxy_read_timeouttime配置Nginx服务器向后端被代理服务器发出read请求后,等待响应的超时时间。time=超时时间,默认为60s。
    proxy_send_timeouttime配置Nginx服务器向后端被代理服务器发出write请求后,等待响应的超时时间。time=超时时间,默认为60s。
    proxy_http_version1.0 | 1.1设置Nginx服务器提供代理服务的HTTP协议版本。默认设置为1.0版本。1.1版本支持upstream服务器组设置中的keepalive指令。
    proxy_methodmethod设置Nginx服务器请求被代理服务器时使用的请求方法。method=可以设置为POST或者GET。
    proxy_ignore_client_aborton | off设置在客户端中断网络请求时,Nginx服务器是否中断对被代理服务器的请求。默认值为off,当客户端中断网络请求时,Nginx服务器中断对被代理服务器的请求。
    proxy_ignore_headersfield设置一些HTTP响应头中的头域,Nginx服务器接收到被代理服务器的响应数据后,不会处理被设置的头域。field=要设置的HTTP响应头的头域。
    proxy_redirectredirect replacement | default | off用于修改被代理服务器返回的响应头中的Location头域和Refresh头域。redirect=匹配Location头域值的字符串,支持变量和正则表达式,replacement=用于替换redirect变量内容的字符串,支持变量的使用,default=代表使用location块的uri变量作为replacement,并使用proxy_pass变量做为redirect,off=将当前域下所有的proxy_redirect指令配置全部设置无效。
    proxy_intercept_errorson | off配置一个状态是开启还是关闭。开启状态时,如果被代理的服务器返回的HTTP状态代码为400或者大于400,则Nginx服务器使用自定义的错误页(使用error_page指令)。如果是关闭状态,Nginx服务器直接将被代理服务器返回的HTTP状态返回给客户端。
    proxy_headers_hash_max_sizesize存放HTTP报文头的hash表的容量。size=HTTP报文头hash表的容量上限,默认为512字符。proxy_headers_hash_max_size 512;
    proxy_headers_hash_bucket_sizesize申请存放HTTP报文头部的hash表容量的单位大小。size=设置的容量,默认为64字符。
    proxy_next_upstreamstatus在配置Nginx反向代理功能时,如果使用upstream指令配置了一组服务器作为被代理服务器,服务器组中各服务器的访问规则遵循upstream指令配置的轮询规则,同时可以使用该指令配置在发生异常情况时,将请求顺次交由下一个组内服务器处理。status=为设置的服务器返回状态,可以是一个或者多个,这些状态有error(在建立连接、向被代理的服务器发送请求或者读取响应头时服务器发生连接错误)、timeout(在建立连接、向被代理的服务器发送请求或者读取响应头时服务器发生连接超时)、invalid_header(被代理服务器返回的响应头为空或者无效)、http_500|http_502|http_503|http_504|http_404(被代理服务器返回500、502、503、504、404状态代码)、off(无法将请求发送给被代理服务器)
    proxy_ssl_session_reuseon | off是否使用基于SSL安全协议的会话连接(“https://”)被代理的服务器

    注意:反向代理一般都是跟负载均衡一起使用。

    实例

    vim /usr/local/nginx/conf/nginx.conf
    添加:
    ...	#其他配置
    server
    {
    	... #其他配置
    	location / {
    		proxy_pass http://192.168.1.110:8080;
    		#proxy_pass http://www.nginx.com/;	#域名
    		#proxy_pass http://www.nginx.com/index.html;	#带路径
    		proxy_set_header Host $host;
    		proxy_set X-Real-IP $remote_addr;
    		proxy_set X-Forwarded-For $proxy_add_x_forwarded_for;
    	}
    }
    
    负载均衡使用

    文章最下面介绍了upstream的server指令。
    Nginx常见负载均衡算法和第三方负载均衡算法

    动静分离

    动静分离其实很简单,就是静态文件交给Nginx(这里担任了单独处理静态文件的WEB服务器)处理,动态的资源就交给后端的服务器,比如(Tomcat、Nginx、Apache)。

    vim /usr/local/nginx/conf/nginx.conf
    添加:
    ...	#其他配置
    server
    {
    	...	#其他配置
    	#动态资源交给后端处理
    	location ~.*\.(jsp|php)$ {	#文件格式可以自己添加
        	proxy_pass http://192.168.1.109;
    	}
    	#静态资源本台Nginx进行处理
    	location ~.*\.(html|js|css|gif|jpg|jpeg|png)$ {	#文件格式可以自己添加
        	root html;
        	index index.html index.htm;
        	#expired 10d;	#如果想要静态文件缓存的话就用此命令,缓存时间为10天
    	}
    }
    
    展开全文
  • 1. nginx正向/方向代理 1.1nginx反向代理 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不...
  • 注意:nginx正向代理有缺陷,如果同时实现httphttps正向代理请使用squid软件 (1)正反向代理 正向代理:实现客户端上网 反向代理:代理访问后端web服务器, 区别:正向代理的对象是客户端,反向代理的对象是服务器...
  • 反向代理:客户端 一>代理 <一> 服务端 正向代理的代理对象是客户端, 反向代理的代理对象是服务端 代理服务器站在客户端那边就是正向代理, 代理服务器站在原始服务器那边就是反向代理, Nginx通过...
  • 下面以nginx为例子来搭建正向代理服务器和反向代理服务器 1.nginx正向代理配置 server{ resolver 8.8.8.8; resolver_timeout 30s; listen 82; location / { proxy_pass http://$http_host$request...
  • )是一个高性能的 HTTP 和反向代理服务器,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。官方测试 nginx 能够支撑5万并发链接,并且 cpu、内存等资源消耗却非常低,并发能力强,运行非常稳定。Nginx 是一款...
  • 小编在公司的技术分享中多次听到正向代理和反向代理,对于Ngnix这一实现反向代理的服务器,是如何工作的呢?下面咱们就一起了解一下。   二、正文 什么是代理服务器(Proxy Serve)? 提供代理服务的电脑系统或...
  • 本文给大家分享的是nginx实现正向代理和反向代理的具体方法配置以及不同的实例情况,非常的详细,希望大家能够喜欢
  • Nginx正向代理与反向代理

    千次阅读 热门讨论 2021-03-09 09:33:16
    Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 什么是正向代理? 正向代理最大的特点是...
  • nginx正向代理和反向代理

    千次阅读 2018-03-04 10:37:41
    一、正向代理 正向代理类似一个跳板机,代理访问外部资源。设定我是一个用户(客户端)现在要请求一个web站点,我的电脑...nginx配置正向代理配置 ... server { resolver 192.168.1.1; #指定DNS服务器IP地址 ...
  • nginx服务正向代理与反向代理

    热门讨论 2021-03-09 08:11:48
    Nginx是一个高性能的HTTP和反向代理服务器, 也是一个IMAP/POP3/SMTP代理服务器 资料 正向代理 客户端发送请求到ngnix代理,ngnix经过处理,在把请求发送给服务器,现在服务器并不知道是谁发的,也不用管是谁发...
  • 正向代理服务器的服务对象是客户端,可以将客户端和代理服务器看作一个整体。 (2)配置方法不同 需要在客户端配置代理服务器的地址,比如在浏览器上设置代理服务器地址 (3)作用 当客户端没有办法服务器...
  • 正向代理与反向代理【总结】:https://blog.csdn.net/mynamepg/article/details/83349099 Nginx 简易教程:http://www.cnblogs.com/jingmoxukong/p/5945200.html#3855845 正向代理: 参考文章:https://...
  • 代理(Proxy)服务,通常也称为正向代理服务,可以使用图7.1示意,其中箭头的方向指示访问的方向。如果把局域网外Internet想象成一个巨大的资源库,那么资源就分布在Internet的各个站点上,局域网内的客户端要访问这...
  • nginx正向代理,反向代理

    热门讨论 2021-03-09 12:18:48
    Nginx(engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。 代理: 在举一个现实生活中的例子:比如我们要买一间二手房,虽然我们可以自己去找房源,但是这太花费时间精力了,...
  • (engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务。 是俄罗斯一个哥们儿写的,性能比较高 主要功能反向代理 通过配置文件可以实现集群负载均衡,配置简单,并可以实现热加载 静态...
  • 正向代理和反向代理 负载均衡理解 windows安装Nginx Linux安装Nginx Nginx的常用命令 Nginx的练习及总结 开始 1.Nginx简介 场景 单机提供服务 横向拓展,增加服务器,几个项目启动在不同的服务器上,用户需要...
  • 1、一言总结正向代理与反向代理 2、正向代理 3、反向代理 1.一言总结正向代理与反向代理正向代理服务器代理的是客户端,服务器的IP地址是已知的,需要在客户端进行代理设置,客户端 对外 IP 地址就会变成代理...
  • 反向代理和正向代理 正向代理: client Server A Server B client想访问B client->A->B 反向代理: client Server A Server B client访问服务,A无法提供,B可以提供 client->A->B ...
  • 正向代理 应用在客户端,决定哪台客户机向外发出用户请求 反向代理 应用在服务器端,决定哪台服务器处理用户请求 区别 正向代理,代理的是客户端 反向代理,代理的是服务器...
  • Nginx的一大用处是进行反向代理来完成完成负载均衡。那么有反向代理,就有正向代理。来看看他们的区别 正向代理 图解: 用户(客户端)去饭店吃饭(发送一个请求),用户要吃的是小龙虾(请求),可是你不能自己做...
  • 一、原理概述 1 正向代理 正向代理通俗的讲就是通过Nginx服务器,让客户端去访问原本访问不到的服务器。例如我们常见的翻墙去访问国外的网站。...反向代理代理的是服务器端,当服务是由一组服务器共同提供...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,874
精华内容 5,149
关键字:

nginx同时正向代理和反向代理