从零学nginx-配置反向代理

8 篇文章 0 订阅
5 篇文章 0 订阅

nginx反向代理工作方式

nginx反向代理工作方式

nginx作为方向代理服务器,其工作方式有两个点需要注意:

  1. 当转发请求的时候,nginx会接收完所有的请求数据,再去转发请求。
  2. 在响应的时候,nginx是一边接收响应数据,一边将响应数据返回给客户端的。

配置upstream

配置示例:

upstream testUrl{
    #ip_hash;
    server 服务器1  #weight=5  max_fails=3  fail_timeout=30s  down;
    server 服务器2;
}

首先我们需要定义一个上有服务,name为testUrl,这个upstream中包含以下属性:

属性名作用描述备注
ip_hash负载均衡策略,如果不配置,默认为轮询不能和weight一起使用
server指定这个upstrem中包含哪些上游服务
weight负载均衡策略为轮询时各服务的比重不能和ip_hash一起使用
max_fails在fail_timeout时间内,失败次数超过max_fails,则认为服务不可用默认为1
fail_timeout和max_fails一起使用默认10s
down下线服务器和ip_hash一起使用

配置访问日志

我们可以在http模块中使用log_format定义一个log的格式:

log_format  format_name  '$remote_addr - $remote_user [$time_local] "$request" '
                         '$status $body_bytes_sent "$http_referer" '
                         '"$http_user_agent" "$http_x_forwarded_for" '
					     '$upstream_addr $upstream_cache_status';

这里其实就是拿nignx的一些变量来组装成日志的输出格式,除了nginx默认的日志内容,如果想要添加目标服务器的信息可以添加一下参数:

变量含义
$upstream_addr访问的上游服务器的地址
$upstream_cache_status是否命中缓存
$upstream_status上游服务器的响应状态
$upstream_response_time上游服务器的响应时间

更多全量的参数建议去官方文档查看有哪些内置变量。
定义好log_format后,我们只需要在打开日志的时候指定format即可:

access_log  日志输出地址 format_name;

配置server模块

server{
    proxy_pass  http://testUrl;
    proxy_method  POST;
    proxy_pass_request_body on;
    proxy_next_upstream http_404;
}

下表是对server模块中的属性的作用的描述:

属性名作用备注
proxy_pass将拦截到的请求转发到指定的上游服务可以是一个具体的地址,也可以是upstram的name
proxy_method将请求转发成指定的method不管原始请求的method是什么,经过转发后到上游服务器的method为指定的这个
proxy_hide_header指定哪些head字段不会被转发默认不转发的有:Date、Server、X-Pad和X-Accel-*
proxy_pass_header指定哪些head字段要转发
proxy_pass_request_body是否向上游服务器发送body默认是发送
proxy_next_upstream当处理请求的上游服务器出现异常的时候,继续换一台服务器处理的策略默认是当出现error和timeout的时候,语法为:proxy_next_upstream[error timeout invalid_header http_500 http_502 http_503 http_504 http_404 off]; off为出错就直接转发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值