4.Nginx-代理配置

代理配置

常用的配置

  1. proxy_pass URL;

    Default:——
    Contextlocation, if in location, limit_except

    ​ 设置代理服务器的协议和地址以及应映射位置的可选URI。作为协议,可以指定“ http”或“ https”。地址可以指定为域名或IP地址,以及可选端口

    如:proxy_pass http://localhost:8000/uri/;

  2. proxy_set_header *field* *value*;

    Default:proxy_set_header Host $proxy_host;
    proxy_set_header Connection close;
    Contexthttp, server, location

    允许重新定义或者添加发往后端服务器的请求头

    重要的配置方式:

    http{
        proxy_set_header X-real-ip $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    
  3. proxy_hide_header field;

    Default:——
    Contexthttpserverlocation

    ​ 默认情况下,nginx不会从代理服务器对客户端的响应中传递标题字段DateServerX-PadX-Accel -...。该proxy_hide_header指令设置了不会传递的其他字段

    即可以隐藏一些头信息不向客户端进行传递

  4. proxy_buffer size;

    Default:proxy_buffer 4k | 8k;
    Contextmailserver

    ​ 设置用于代理的缓冲区的大小。默认情况下,缓冲区大小等于一个内存页面。根据平台,它是4K或8K

  5. proxy_buffering on | off;

    Default:proxy_buffering on;
    Contexthttpserverlocation

    启用或禁用来自代理服务器的响应缓冲

    • 启用缓冲后,nginx会尽快从代理服务器接收响应,并将其保存到proxy_buffer_sizeproxy_buffers指令设置的缓冲区中 。如果整个响应不适合内存,则可以将其中的一部分保存到磁盘上的临时文件中。写入临时文件由proxy_max_temp_file_sizeproxy_temp_file_write_size指令控制
    • 禁用缓冲时,响应会在收到响应时立即同步传递给客户端。nginx不会尝试从代理服务器读取整个响应。nginx一次可以从服务器接收的数据的大小由proxy_buffer_size指令设置
  6. proxy_redirect default;
    proxy_redirect off;
    proxy_redirect redirect replacement;

    Default:proxy_redirect default;
    Contexthttpserverlocation

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

  7. proxy_connect_timeout time;

    Default:proxy_connect_timeout 60s;
    Context:httpserverlocation

    定义与代理服务器建立连接的超时。应该注意,此超时通常不会超过75秒

    与此类似的有

    1. proxy_send_timeout:设置将请求传输到代理服务器的超时。仅在两个连续的写操作之间设置超时,而不是为整个请求的传输。如果代理服务器在此时间内未收到任何内容,则关闭连接
    2. proxy_read_timout:定义从代理服务器读取响应的超时。仅在两个连续的读操作之间设置超时,而不是为整个响应的传输。如果代理服务器在此时间内未传输任何内容,则关闭连接
http{
    proxy_pass http://localhost:8080;
    proxy_redirect default;
    
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    proxy_connect_timeout 30;
    proxy_send_timeout 60;
    proxy_read_timeout 60;
    
    proxy_buffer_size 32k;
    proxy_buffering on;
    proxy_buffers 4 128k;
    proxy_busy_buffers_size 256k;
    proxy_max_temp_file_size 256k;
}

正向代理配置

http{
    # 指定谷歌公用的DNS解析服务器
    resolver 8.8.8.8;
    location / {
        proxy_pass http://$http_host$request_uri;
    }
}

反向代理配置

http{
    # location规则可随意配置
    location / {
        # 指所有的请求都转发到8080端口上
        proxy_pass http://127.0.0.1:8080;
        
        if ( $http_x_forward_for !~* "^116\.62\.103\.228" ) {
            return 403;
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值