大家好,今天来介绍nginx反向代理的主要作用的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!
nginx正向代理和反向代理区别和好处
1.正向代理:
正向代理,"它代理的是客户端",是一个位于客户端和原始服务器(Origin Server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器)。
然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
1.1正向代理用途:
访问原来无法访问的资源,如 Google。
可以做缓存,加速访问资源野樱。
对客户端访问授权,上网进行认证。
代颂物丛理可以记录用户访问记录(上网行为管理),对外隐藏用户信息。
2反向代理:
反向代理它代理的是服务蚂戚端",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。
2.1反向代理用途:
保证内网的安全,通常将反向代理作为公网访问地址,Web 服务器是内网。
负载均衡,通过反向代理服务器来优化网站的负载。
为什么要用Nginx反向代理
用Nginx反向代理是为了不让客户端知道真正访问的服务器地址是多少,以防止暴露唤敬服务器信息让服务器变的不安全。
当然也段链脊有其它的握渗功能,如网站的动静分离,可以加快客户端的访问效率。
nginx服务器有什么作用以及什么是反向代理
一:Nginx作为正向代理服务器:
1.正向代理:代理(proxy)服务也可以称为是正向代理,指的是将服务器部署在公司的网关,代理公司内部员工上外网的请求,可以起到一定的安全作用和管理限制作用,正向代理不支持从外网向内网访问资源,一般很少用,经本人测试,效果也不好,有很多页面打不开,在百度搜索的页面也无法返回。
server {
server_name localhost;
resolver 202.106.0.20 8.8.8.8; #只能有一个resolve,但是可以用空格漏族隔开,继续写下一个
resolver_timeout 5s;
listen 8080;
location / {
proxy_pass $scheme://$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.错误码502 :Nginx作为代理服务器向后端转发请求过程中超时。
二:Nginx作为反向代理服务器:
反向代理:反向代理也叫reverse proxy,指的是代理外网用户的请求到内部的指定web服务器,并将数据返回给用户的耐搜橡一种方式,这是用的比较多的一种方式。
反向代理的常用指令:
1.proxy_pass:用来设置将请求转发给的后端服务器的主机,可以是主机名、IP地址:端口的方式,也可以代理到通过upstream设置的主机组,如下:
upstream webserver {
#ip_hash;
server 192.168.0.201 weight=1 max_fails=2 fail_timeout=2;
server 192.168.0.202 weight=1 max_fails=2 fail_timeout=2;
server 127.0.0.1:9008 backup;
}
server {
server_name hfnginx.chinacloudapp.cn;
#access_log logs/host.access.log main;
location / { #静态网页在本机
root html;
index index.html;
}
location ~* ^/form { #指定目录在后端服务器
proxy_pass http://webserver; #此处http://webserver后面不能加/,如果加了会提示语法错误
proxy_set_header X-Real-IP $remote_addr;
}
}
2:proxy_hide_header:用于nginx服务器作为反向代理的时候,在返回给客户端http响应的时候,隐藏后端服务版本(如php版本)的信息,可以设置在http/server或location块,如下:
Nginx会将上游服务器的响应转发给客户端,但默认不会转发以下HTTP头部字段:Date、Server、X-Pad和X-Accel-*。使用proxy_hide_header后可以任意地指定哪些HTTP头部字段不能被转发。例如:
proxy_hide_header Cache-Control;
proxy_hide_header MicrosoftOfficeWebServer;
注:如果是nginx直接作为web服务器,要隐藏版本信息的话,使用fastcgi_hide_header:
3:proxy_pass_header:与proxy_hide_header功能相反,proxy_pass_header会将原来禁止转发的header设置为允许转发,可以设置在http/server或location块例如:
proxy_pass_headerX-Accel-Redirect;
4:proxy_pass_request_body:是否向后端服务器发送HTTP包体部分,可以设置在http/server或location块,如下:
proxy_pass_request_body onoff; #默认昌旁为on
5:proxy_pass_request_headers:是否将客户端的请求头部转发给后端服务器,可以设置在http/server或location块,如下:
proxy_pass_request_headers on off; #默认为on
6:proxy_set_header:可以更改或添加客户端的请求头部信息内容,并转发之后端服务器,比如在后端服务器想要获取客户端的真实IP的时候,就要更改每一个报文的头部,如下:
proxy_set_header HOST $remote_addr; #添加HOST到报文头部,其值为客户端的公网IP地址
7:proxy_set_body:更改nginx服务器接收到的客户端请求的请求内容,然后将修改后的请求转发给后端的服务器,用法如下:
proxy_set_body value; #其中value为要修改的目标内容,可以是变量、文本或者变量的组合。
8:proxy_ip:Nginx 0.8.22版本及以上支持此功能,用于Nginx配置了多个基于域名或IP的主机的情况下,可以指定代理连接到特定的主机处理,就是强制将客户端请求绑定到指定的IP地址:
proxy_bind x.x.x.x;
9:proxy_connect_timeout:配置nginx服务器与后端服务器尝试建立连接的超时时间,默认为60秒,用法如下:
proxy_connect_timeout 10s; #10s为自定义nginx与后端服务器建立连接的超时时间
10:proxy_read_time:配置nginx服务器向后端服务器或服务器组发起read请求后,等待的超时时间:
proxy_read_time 10s; #默认为60秒
11:proxy_send_time; 配置nginx项后端服务器或服务器组发起write请求后,等待的超时时间:
proxy_send_time 10s; #默认为60s
12:proxy_http_version:用于设置nginx提供代理服务的HTTP协议的版本:
proxy_http_version 1.01.1;
13:proxy_method:设置nginx服务器请求后端服务器时使用的方法,一般为POST或者GET,客户端的请求方法将被忽略:
proxy_method GETPUT;
14:proxy_ignore_client_abort:设置在客户端网络中断请求时,nginx服务器是否中断对被代理服务器的请求:
proxy_ignore_client_abort offon; #默认为off,当客户端网络中断请求时,nginx服务器中断其对后端服务器的请求。
15:proxy_ignore_headers:设置nginx不处理后端服务器返回的数据中包含某些指定字段的报文,可以指定的有:”X-Accel-Redirect”, “X-Accel-Expires”, “Expires”或”Cache-Control”:
proxy_ignore_headers Expires;
16:proxy_redirect:修改后端服务器返回的响应头部中的location货refresh,与proxy_pass配合使用:
17:proxy_intercept_errors:设置nginx服务器返回客户端的错误状态,当后端服务器返回大于等于400的错误码的是,如果本功能是打开的,则nginx服务器返回自定义的错误页面(使用error page定义的),如果没有开启就将后端服务器返回的HTTP状态直接返回给客户端,默认为关闭:
proxy_intercept_errors on off;
18:proxy_headers_hash_max_size:设置nginx保存HTTP报文头的hash表的上限,默认为512字节:
proxy_headers_hash_bucket_size 512;#申请nginx保存HTTP报文头的hash表的空间大小,默认为64个字节
proxy_headers_hash_max_size 512; #上限
server_names_hash_max_szie 512; #设置服务器名称的上限
server_namse_hash_bucket_size 512; #申请空间大小
19:proxy_headers_hash_bucket_size:#申请nginx保存HTTP报文头的hash表的空间大小,默认为64个字节
proxy_headers_hash_bucket_size 512; #默认为64字节
20:proxy_net_upstream:当使用了upstream的时候,可以定义在发生了特定的情况下将请求依次交给下一个组内的服务器处理,状态包括:
proxy_next_upstream http_404 http_502; //让404报错进入max_fails计数 upstream online {
sticky;
server 172.28.70.161:8080 max_fails=0 fail_timeout=3s ;
server 172.28.70.163:8080 max_fails=0 fail_timeout=3s ;
check interval=3000 rise=2 fall=1 timeout=1000 type=http;
check_http_send "GET / HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}
upstream backup {
server 172.28.22.29:7777 max_fails=0 fail_timeout=3s;
}
21:proxy_ssl_session_reuse:配置是否基于SSL协议与后端服务器建立连接,如下:
proxy_ssl_session_reuse on off;
谁能解释一下nginx反向代理是什么意思
nginx反租颤向代理的意思:就是代理内部服务器对外进行服务的 nginx 代理服务。
nginx反向代理的反向性在于:Nginx作为负载均衡服务时Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。
反向代理的方向与正向代理相反,代表外部网络用户向内部服务器发出请求,即接收来自Internet上用户的连接请求,并将这些请求转发给内部网络上的服务器,然后将从内部服务器上得到的响应返回给Internet上请求连接的客户。
反向效果:对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。用户不需要知道目标服务器的地址,作为Web服务器的前置机弊瞎败来降低网络和服务器的负载,提高访问效率。
反向代理的优势:
1、加快了对内部服务器的访问速度
在内部服务器前放置两台反向代理服务器,分别连接到教育网和公网,这样公网用户就可以直接通过公网线路访问学校服务器,从而避开了公网和教育神余网之间拥挤的链路。同时反向代理服务器的缓存功能也加快了用户的访问速度。
2、节约了有限的IP资源
校园网内部服务器除使用教育网地址外,也会采用公网的IP地址对外提供服务,公网分配的IP地址数目是有限的,如果每个服务器有分配-个公网地址,那是不可能的,通过反向代理技术很好地解决了IP地址不足的问题。
来源:-nginx
来源:-反向代理
nginx反向代理三种模式
1、基于IP代理
2、基于域名代大樱伏理
3、基于端口代理
Nginx是一款轻量级的Web 服务器颂物/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占用内存少,并发能力强,是我们在Web开发中最常用的工具之一。
Nginx反向代理的主要作用
Nginx配置反向代理时,是安装在目的主机端滚携,主要用于转发客户机请求,后台有多个http服务器提供服务,Nginx的功能就是把请求转发给后面的服务器,决定哪台目标主机来处理当前请求。
此外,Nginx能提供性能稳定、并且提供配置灵活的转发功能。它可以根据不同的正则匹配,采取不同的转发策略,并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,它可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。
本文地址:https://gpu.xuandashi.com/72451.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!