Nginx学习笔记(三、Nginx反向代理与负载均衡)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Nginx学习笔记(三、Nginx反向代理与负载均衡),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5256字,纯文字阅读大概需要8分钟。
内容图文
![Nginx学习笔记(三、Nginx反向代理与负载均衡)](/upload/InfoBanner/zyjiaocheng/935/10ff92fae00d4cbea69bc52d71db87d9.jpg)
目录:
- 正向代理与方向代理简介
- 正向代理基本操作指令
- 反向代理基本操作指令
正向代理与方向代理简介
1、正向代理:内部服务器访问外部资源。
外部资源好比外面的因特网,是一个巨大的资源库,如果不受控制的访问外部资源那肯定是及其不安全的,容易导致病毒入侵内网。
因此就需要一个挡板或过滤器来限制这种不安全的资源访问,正向代理便是如此的代理服务器。
它主要是为了增强局域网内部的网络安全性,使得外网的威胁因素影响不到内部的网络;这里的代理服务器起到了防火墙的作用,同时也可以对局域网内的访问进行必要的监控和管理,正向代理服务器不支持外部对内部网络的访问请求。
2、反向代理:外部资源访问内部服务器。
它与正向代理相反,如果我们的局域网向Internet提供资源,让internet上的其他用户可以访问我们局域网内部资源,也可以设置一个代理服务器,他提供的服务就叫做反向代理(Reverse proxy)服务。
正向代理基本操作指令
指令名称: |
用途: |
resolver |
指定DNS ip地址默认端口53 |
resolver_timeout |
设置解析超时时间 |
proxy_pass |
代理服务器的协议地址 |
1、resolver:该指令用于指定DNS服务器的IP地址。
DNS服务器的主要工作是对域名的解析工作,将域名转变为对应的ip地址。
1 server { 2 # 设置DNS服务器的IP 3 # valid:有些情况下我们的数据包在一定的时间内不能被传递到目的地,但是又不能让这个数据包无线的存在,所以我们可以设定一个时间 4 # 当数据包在这段时间内没有到达目的地就会被丢弃,然后发送者会受到一个消息,并且决定要不要重新发送该数据包 5 resolver 8.8.8.8 valid = 30s; 6 7 listen 80; 8 server_name localhost; 9 }
2、resolver_timeout指令。
该指令用于设置DNS服务器解析超时时间。
1 server { 2 resolver 8.8.8.8 valid = 30s; 3 # 设置DNS服务器的解析超时时间 4 resolver_timeout 100s; 5 6 listen 80; 7 server_name localhost; 8 9 #charset koi8-r; 10 }
3、proxy_pass指令。
该指令用于配置代理服务器的协议的地址,更用于nginx的反向代理服务。
指令:proxy_pass URL(URL指的是设置代理服务器协议和地址)。
1 server { 2 resolver 8.8.8.8 valid = 30s; 3 resolver_time 100s; 4 5 listen 80; 6 server_name localhost; 7 8 location / { 9 root html; 10 index index.html index.htm; 11 proxy_pass http://$http_host$request_uri; 12 } 13 }
其中代理服务器协议设置为Http,$http_host和$request两个变量是Nginx支持的动态获取主机和uri的变量。
反向代理基本操作指令
1、proxy_pass:设置被代理服务器的地址。
1 upstream testServer { 2 3 # weight:权重 4 server ip1:8080 weight=1; 5 server ip2:8081 weight=1; 6 7 # 1-2 ip_hash; 服务器 不会太大 8 # 3-5 session复制; 配置比较麻烦一点 9 # 5以上 redis共享 直接代码层次 10 # ip_hash; 11 12 } 13 14 server { 15 16 # 监听的端口 17 listen 80; 18 server_name localhost; 19 20 #charset koi8-r; 21 22 #access_log logs/host.access.log main; 23 24 # 请求带有/server的,转到此处理 25 location /server { 26 # 设置被代理的服务器:把http://host/server的请求代理到http://testServer执行 27 # http://testServer >>> upstream testServer中的server 28 # 也就是会转到ip1:8080或ip2:8081处理 29 proxy_pass http://testServer; 30 } 31 32 }
2、proxy_hide_header:配置发送http响应隐藏的头域信息。
1 # field为需要发送的头域,该指令可以在http、server、location块中进行配置 2 proxy_hide_header field;
3、proxy_pass_header:配置头域信息。
1 # field指的是哪些文件将被发送 2 Proxy_pass_header field;
4、proxy_pass_request_body:配置是否客户端发送的请求体发送给代理服务器。
1 # 默认为on,开关可以在http块server或者location块中进行配置 2 proxy_pass_request_body on|off;
5、proxy_pass_request_headers:配置是否发送请求头给代理服务器。
# 默认为on,开关可以在http块server或者location块中进行配置 proxy_pass_request_headers on|off;
6、proxy_set_header:更改nginx服务器收到的请求头,然后将新的请求头发给代理服务器。
1 # field你要更改的信息所在的头域 2 # value更改的值,支持文本,变量或者说变量的结合 3 proxy_set_header field value; 4 5 # 默认情况下的配置 6 proxy_set_header host $proxy_host; 7 8 # 实例: 9 # 将目前host的值充填成客户端的地址值 10 proxy_set_header host $http_host; 11 # 将location块的server_name的指令充填到Host头域 12 proxy_set_header host $host;
7、proxy_set_body:更改nginx服务器的请求体。
1 # value是更改的信息,支持文本变量或者变量的组合 2 proxy_set_body value;
8、proxy_bind:强行将代理主机绑定到指定的ip地址。
1 # ip指的是主机ip(只有0.8.22nginx以上支持) 2 proxy_bind ip;
9、proxy_coonext_timeout:配置nginx服务器与被代理服务器建立进阶的超时时间。
1 # Time为超时时间默认60s 2 proxy_connect_timeout time;
10、proxy_read_timeout:nginx服务器向后端被代理服务器发出read请求后等待响应超时时间。
1 # Time为超时时间默认60s 2 proxy_read_timeout time;
11、proxy_send_timeout:示nginx服务器向后端发起write请求后等待响应的超时时间。
1 # Time为超时时间默认60s 2 proxy_send_timeout time;
12、proxy_http_version:设置http协议版本。
1 # 版本自己选择1.0或者1.1稳定一点 2 proxy_http_version 1.0|1.1;
13、proxy_method:设置nginx服务器请求被代理服务器时使用的请求方法,一般为post 或者get。
1 # 注意自己选择get还是post不要加""号 2 proxy_method post|get;
14、proxy_ignore_client_abort:设置客户端中断网络请求,nginx服务器是否中断被代理的服务器请求。
1 # 默认off,极少使用数据交互 2 proxy_ignore_client_abort off|on
15、proxy__ignore_headers:设置一些http的响应头区域 nginx服务器接收到被代理的服务器响应时不会被处理设置的头域。
1 # field 未设置的http响应头的区域,例如"x-accel-REdirect","x-Accel-Expires"等 2 proxy_ignore_headers field ...
内容总结
以上是互联网集市为您收集整理的Nginx学习笔记(三、Nginx反向代理与负载均衡)全部内容,希望文章能够帮你解决Nginx学习笔记(三、Nginx反向代理与负载均衡)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。