0
点赞
收藏
分享

微信扫一扫

Nginx进阶篇(2)Proxy代理

桑二小姐 2022-06-07 阅读 63

模块:ngx_http_proxy_module

语法:

代理
Syntax: proxy_pass URL; 代理的后端服务器URL
Default: —
Context: location, if in location, limit_except

缓冲区
Syntax: proxy_buffering on | off;
Default: proxy_buffering on; 缓冲开关
Context: http, server, location
proxy_buffering开启的情况下,nignx会把后端返回的内容先放到缓冲区当中,然后再返回给客户端
(边收边传,不是全部接收完再传给客户端)。

Syntax: proxy_buffer_size size;
Default: proxy_buffer_size 4k|8k; 缓冲区大小
Context: http, server, location

Syntax: proxy_buffers number size;
Default: proxy_buffers 8 4k|8k; 缓冲区数量
Context: http, server, location

Syntax: proxy_busy_buffers_size size;
Default: proxy_busy_buffers_size 8k|16k; 忙碌的缓冲区大小,控制同时传递给客户端的buffer数量
Context: http, server, location

头信息
Syntax: proxy_set_header field value;
Default: proxy_set_header Host $proxy_host; 设置真实客户端地址
proxy_set_header Connection close;
Context: http, server, location

超时
Syntax: proxy_connect_timeout time;
Default: proxy_connect_timeout 60s; 链接超时
Context: http, server, location

Syntax: proxy_read_timeout time;
Default: proxy_read_timeout 60s;
Context: http, server, location

Syntax: proxy_send_timeout time;nginx进程向fastcgi进程发送request的整个过程的超时时间
Default: proxy_send_timeout 60s;
Context: http, server, location

启用代理:

nginx-1后端服务器: 192.168.19.100

nginx-2代理:192.168.19.102

nginx-1
systemctl start nginx

nginx-2
vim /etc/nginx/conf.d/default.conf
location / {
# root /usr/share/nginx/html;
# index index.html index.htm;
proxy_pass http://192.168.19.100:80;
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_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;
}

systemctl restart nginx

  • proxy_pass :真实服务器
  • proxy_redirect :如果真实服务器使用的是的真是IP:非默认端口。则改成IP:默认端口。
  • proxy_set_header:重新定义或者添加发往后端服务器的请求头
  • proxy_set_header X-Real-IP :启用客户端真实地址(否则日志中显示的是代理在访问网站)
  • proxy_set_header X-Forwarded-For:记录代理地址


  • proxy_connect_timeout::后端服务器连接的超时时间_发起三次握手等候响应超时时间
  • proxy_send_timeout:后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
  • proxy_read_timeout :nginx接收upstream(上游/真实) server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭。像长连接


  • proxy_buffering on;开启缓存
  • proxy_buffer_size:proxy_buffer_size只是响应头的缓冲区
  • proxy_buffers 4 128k; 内容缓冲区域大小
  • proxy_busy_buffers_size 256k; 从proxy_buffers划出一部分缓冲区来专门向客户端传送数据的地方
  • proxy_max_temp_file_size 256k;超大的响应头存储成文件。


客户机浏览器中输入http://192.168.100.20,访问nginx-2服务器地址

观察nginx-1的日志

192.168.19.102 - - [07/Jun/2022:17:10:44 +0800] "GET / HTTP/1.0" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33" "192.168.19.1"

  • 192.168.19.102 代理服务器地址
  • 192.168.19.1 客户机地址


举报

相关推荐

0 条评论