nginx代理(正向代理和反向代理)

正向代理

  

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

  配置文件:

  

server {
    # 配置DNS解析IP地址,比如 Google Public DNS,以及超时时间(5秒)
    resolver 8.8.8.8;    # 必需
    resolver_timeout 5s;

    # 监听端口
    listen 8080;

    access_log  /home/reistlin/logs/proxy.access.log;
    error_log   /home/reistlin/logs/proxy.error.log;

    location / {
        # 配置正向代理参数
        proxy_pass $scheme://$host$request_uri;
        # 解决如果URL中带"."后Nginx 503错误
        proxy_set_header Host $http_host;

        # 配置缓存大小
        proxy_buffers 256 4k;
        # 关闭磁盘缓存读写减少I/O
        proxy_max_temp_file_size 0;
         # 代理连接超时时间
        proxy_connect_timeout 30;

        # 配置代理服务器HTTP状态缓存时间
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 301 1h;
        proxy_cache_valid any 1m;
    }
}

注意:  1.不要设置server_name指令

    2.我们测试的时候可以使用谷歌浏览器,在谷歌浏览器的高级设置里面设置代理,代理地址就是我们nginx的  http://ip:端口号

反向代理

  

  反向代理也是在客户端和服务器端的一个代理服务器,但是这个代理服务器的目的是用来保护服务器端的,当外网客户端来访问我们的服务器时为了避免暴露应用服务器的实际ip地址,我们会让客端访问代理服务器,然后代理服务器再根据客户端的请求去实际的应用服务器获取响应内容并返回客户端。

  • proxy_pass

    proxy_pass URL

    设置代理服务器的地址,可以是主机名称、IP地址加端口号等形式。

   注意:1.当代理的是一组服务器时可以使用 upstream 指令来设置。

      2. 当URL中含有uri时,(例如 "http://127.0.0.1:8080/"、"http://127.0.0.1:8080/demo.html")不管客户端访问的是地址中的uri是什么,代理服务器都会代理到 URL的地址;当URL中不包含uri时(例如:"http://127.0.0.1:8080"),那么当客户端访问服务器时,代理服务器会根据客户端请求的uri来访问具体的URL地址。

  • proxy_pass_request_body

    proxy_pass_request_body  on|off

    用于配置是否将客户端的请求的请求体发送给代理服务器。

  • proxy_pass_request_headers

    proxy_pass_request_headers on|off

    用于配置是否将客户端的请求的头信息发送给代理服务器。

  • proxy_set_header

    proxy_set_header  field  value

    可以更改nginx接收到的客户端请求的请求头信息,然后将新的请求头信息发送给被代理的服务器。

  • proxy_set_body

    proxy_set_body  value

    ngin接收到客户端的请求后使用该指令可以修改request中的body体,然后将请求转发给代理服务器

  • proxy_connect_timeout

    proxy_connect_timeout  time

    nginx服务器与被代理服务器之间尝试建立连接的的超时时间,默认为60s。

  • proxy_read_timeout

    proxy_read_timeot  time

    nginx服务器接收被代理服务器数据时最大的等待时间,默认为60s。

  • proxy_send_timeout

    proxy_send_timeout time

    nginx服务器发送数据至被代理服务器的最大等待时间,例如60s内没有发出一个字节则默认断开连接,默认60s。

  • proxy_http_version

    proxy_http_version  1.0|1.1

    nginx 服务器提供代理服务的http协议版本

  • proxy_method

    proxy_method method

    nginx服务器设置请求被代理服务器时使用的请求方法,一般为POST或者GET

  • proxy_ignore_client_abort

    proxy_ignore_client_abort  on|off

    当客户端中断网络请求时,nginx服务是否中断对代理服务器的请求,默认off

  • proxy_ignore_headers

    proxy_ignore_headers  field...

    nginx服务器接收到被代理服务器的响应数据后,不会处理被设置的头域

  • proxy_redirect

    proxy_redirect  redirect  replacement; #使用replacement替换redirect
    proxy_redirect  default;   #使用location块的uri替换掉 proxy_pass 后的变量
    proxy_redirect   off;     #当前作用域下所有 proxy_redirect 指令全部失效

    如果需要修改从被代理服务器传来的应答头中的"Location"和"Refresh"字段,可以用这个指令设置

  • proxy_intercept_errors

    proxy_intercept_errors  on|off

    该指令开启时,当被代理服务器返回http状态码为400或者大于400时,nginx服务器会使用自己定义(使用error_page指令)的响应错误页面,如果为off时直接返回状态码

  • proxy_next_upstream

    proxy_next_upstream  status

    当被代理的服务器是一个 使用upstream指令配置的一组服务器时,服务器组中的服务器遵循upstream指令配置的的轮训规则,同时也可以使用该指令来设置发生哪些异常时使用组内的下一个服务器处理请求。可选值:error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | off ...;其中off指无法将请求发送给被代理服务器

  • proxy_ssl_session_reuse

    proxy_ssl_session_reuse  on|off

    用于配置是否使用基于SSL安全协议的的会话连接(https://)被代理服务器,默认为开启状态

原文地址:https://www.cnblogs.com/itsuibi/p/11249712.html

时间: 2024-10-27 15:27:55

nginx代理(正向代理和反向代理)的相关文章

转载:给你掰扯清楚什么是正向代理,什么是反向代理

注:在看今日头条的时候,网友(喵喵笑一笑)写的一篇文章,对正向代理和反向代理解释的很好, 我这里就转载过来了,希望对大家有所帮助: 转载地址: http://www.toutiao.com/a6418377865344549121/?tt_from=mobile_qq&utm_campaign=client_share&app=news_article&utm_source=mobile_qq&iid=10412424425&utm_medium=toutiao_a

前nginx后Apache+Node反向代理

前几天一直在被一个问题困扰,机器上跑的站点太多了,Apache上面有十几个,NodeJS的也有一堆,记端口号都要烦死,于是萌生了使用反向代理的想法.出发点貌似太low了,完全不是出于负载均衡.高并发什么的考虑,就是为了不记端口号 最开始是使用Apache做的,因为使用的Mac安装mod_proxy及繁杂的配置搞得要死,关键是还失败了...(失败原因另说),江湖传言nginx做反向代理配置简单,尝试了一下nginx,果不其然 工作原理 刚入行的小伙伴可能会问什么事反向代理?为什么使用反向代理就不用

高性能Web服务之Nginx+Tomcat实现负债均衡反向代理及动静分离

在实际生产中,Tomcat服务器一般不单独使用在项目中,对于静态资源的响应Nginx表现的比较好,另外由于nginx是专门用于反向代理的服务器,所以很容易实现将java的请求转发到后端交给tomcat容器处理,而本身用来处理静态资源. 通常tomcat前端是nginx或apache,后端都为tomcat,也就意味着无论前端是什么角色都是以代理的方式进行工作的;但是要注意的是如果基于nginx做反向代理,转发请求到tomcat的时候是基于http协议进行转发的:但注意的是tomcat的连接器有ht

Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理

Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理 bangumi.tv//group/topic/145491 bangumi.tv//g

nginx监听端口和反向代理端口的权限问题

Linux的SELinux安全性控制除作用于文件系统外还作用于端口,这使得那些作为服务启动的进程只能在规定的几个端口上监听.为叙述方便我们称之为受控端口. nginx监听端口 要查看当前有哪些受控端口可执行: # semanage port -l | grep '^http_port_t' http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000 这里显示了八个端口号,其中包括80端口.由于nginx默认在80端口监听因此启动正常. # s

什么是正向代理,什么是反向代理

今天被人问到了什么是正向代理,什么是反向代理,来总结下,省的以后又忘了. 正向代理:比如我们想访问一台服务器A,但是服务器A在别的公司的内网,我们直接访问访问不进去,这时候有台中间服务器B,这个服务器B既能被我们的机器访问,又能去访问服务器A 那我们就可以通过服务器B去访问服务器A了,这种方式就是正向代理,所谓的‘FQ’其实也是这个道理. 正向代理类似一个跳板机,代理访问外部资源: 反向代理:我们写了一个项目,想要发布,然后我们就把服务布在了服务器A上了,但是我们怕服务的ip地址被人知道了会有危

Nginx服务器的安装与反向代理负载均衡

Nginx服务器 一:什么是Nginx? 我们生活的世界中,有的时候需要上网.我们可以浏览很多很多的网页,这些网页都是由一系列的程序组成,但是我们是否想过,这些程序存储在什么地方呢?没错,这些程序都是存储在一种名叫服务器的硬件上,比如我们的电脑也是一种服务器,只不过我们的个人电脑作为服务器的话性能会比较低.我们的网页程序存储在服务器硬件上,是否可以随意存储呢?不是的,我们需要在服务器硬件的操作系统中搭建一个服务器软件,那么这样,有服务器软件跟服务器硬件配合,才形成一个完整的服务器.服务器软件有非

Nginx HTTP负载均衡和反向代理配置

当前大并发的网站基本都采用了Nginx来做代理服务器,并且做缓存,来扛住大并发.先前也用nginx配置过简单的代理,今天有时间把整合过程拿出来和大家分享,不过其中大部分也是网上找来的资源. nginx完整的反向代理代码如下所示  : [[email protected] conf]# vim nginx.conf user  www www; worker_processes  10; error_log  /var/log/nginx/nginx_error.log; pid        l

NGINX之——配置HTTPS加密反向代理訪问–自签CA

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46695495 出于公司内部訪问考虑,採用的CA是本机Openssl自签名生成的,因此无法通过互联网工信Root CA验证,所以会出现该站点不受信任或安全证书无效的提示.直接跳过,直接訪问就可以! HTTPS的原理和訪问过程: server必要条件 一个server私钥 KEY文件 一张与server域名匹配的CA证书(公钥,依据私钥key生成) 訪问过程: 1,client浏览器

Nginx HTTP 负载均衡和反向代理

1.负载均衡和反向代理介绍 负载均衡是多台服务器对称方式组成一个服务器的集合,每个服务器都能单独对外提供服务,通过负载均衡技术,将客户端请求均匀的分配到服务器集合中的某个服务器上,然后服务器独立响应客户端的请求,这样解决了高并发的访问. 反向代理是指以代理服务器接受用户请求,然后将请求,转发给内部网络上的服务器,并将从服务器上得到的结果返回给用户,这时代理服务器对外表现为一个服务器,代理服务器上没有保存任何的网页数据,所有的静态网页和CGI程序都保存在内部网络上的web服务器上,增加了web服务