8.Nginx的代理服务
孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。
1.Nginx代理服务基本概述
proxy 代理
网站:让网站可以承受更高并发/访问量
用户:通过代理上网加速/翻Q……..
反向代理与正向代理
1.正向代理
正向代理是为客户端提供服务
例如:
1.客户端科学的上网(翻墙)
2.客户端提速(游戏加速器)
3.客户端缓存(下载资源先查看代理是否有缓存,如果有直接从代理获取)
4.客户端授权(很多公司为了安全,连接外网需要通过防火墙,防火墙可以配置规则,允许谁可以上网,谁不可以上网)
2.反向代理
反向代理是为服务端提供服务
1.路由功能:根据用户请求的URI,调度到不同功能地服务器进行处理。
2.负载均衡:将用户发送的请求,通过负载均衡调度算法挑选一台合适的节点进行请求处理。
3.动静分离:根据用户请求的URI进行区分,将动态资源调度至应用服务器进程处理。将静态资源调度至静态资源服务器处理。
4.数据缓存:将后端查询的数据存储至反向代理上缓存,可以加速用户获取资源。

3.正反向代理的区别
区别在于形式上服务的对象不一样,其次架设的位置点不一样
正向代理代理的对象是客户端,为客户端服务
反向代理代理的对象是服务器,为服务器服务
2.Nginx反向代理常用模块
1.代理指令proxy_pass
Syntax: | proxy_pass URL; |
---|---|
Default: | — |
Context: | location , if in location , limit_except |
2.设置或修改代理到后端,请求头的内容 proxy_set_header
Syntax: | proxy_set_header field value; |
---|---|
Default: | proxy_set_header Host $proxy_host;proxy_set_header Connection close; |
Context: | http , server , location |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #增加代理-->web请求头信息 让后端节点记录用户真实ip地址(客户端ip地址)
3.http版本proxy_http_version
Syntax: | proxy_http_version 1.0 | 1.1; |
---|---|
Default: | proxy_http_version 1.0; |
Context: | http , server , location |
4.连接,读取,写入超时时间
#代理与后端节点 建立连接的超时时间proxy_connect_timeout 不建议超过75s
Syntax: | proxy_connect_timeout time; |
---|---|
Default: | proxy_connect_timeout 60s; |
Context: | http , server , location |
#代理服务器读取后端响应的超时时间proxy_read_timeout
Syntax: | proxy_read_timeout time; |
---|---|
Default: | proxy_read_timeout 60s; |
Context: | http , server , location |
#代理服务器发送请求给后端节点 超时时间proxy_send_timeout
Syntax: | proxy_send_timeout time; |
---|---|
Default: | proxy_send_timeout 60s; |
Context: | http , server , location |
5.代理后端节点相应信息缓冲
####proxy_buffering 是否开启代理服务器 缓存后端节点的响应 报文信息(响应头和响应主体)
Syntax: | proxy_buffering on | off; |
---|---|
Default: | proxy_buffering on; |
Context: | http , server , location |
##proxy_busy_buffers_size
Syntax: | proxy_busy_buffers_size size; |
---|---|
Default: | proxy_busy_buffers_size 8k|16k; |
Context: | http , server , location |
##为单个连接缓存响应信息 8 128k;proxy_buffers
Syntax: | proxy_buffers number size; |
---|---|
Default: | proxy_buffers 8 4k|8k; |
Context: | http , server , location |
PS:通常情况下,我们可以将这些配置汇总一下写在一个文件里,编辑配置文件时直接include即可
[root@lb01 ~]# cat /etc/nginx/conf.d/proxy_blog.conf
server {
listen 80;
server_name blog.com;
location / {
proxy_pass http://10.0.0.7;
include proxy.params;
}
}
[root@l01 ~]# cat /etc/nginx/proxy.params
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 60;
proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 4 64k;
proxy_http_version 1.1;
评论已关闭