4

十一、nginx代理

 2 years ago
source link: https://blog.51cto.com/u_13236892/5614130
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

十一、nginx代理

精选 原创

哭泣的馒头 2022-08-23 22:05:31 博主文章分类:nginx指南 ©著作权

文章标签 服务器 客户端 反向代理 文章分类 Linux 系统/运维 yyds干货盘点 阅读数205

一、代理简介

1、正向代理

意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

内网客户机通过代理访问互联网,通常要设置代理服务器地址和端口

十一、nginx代理_服务器

2、反向代理

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

外网用户通过代理访问内网服务器,内网服务器无感知

十一、nginx代理_服务器_02

区别:正向代理是客户端和其他所有服务器(重点:所有)的代理者,而反向代理是客户端和所要代理的服务器之间的代理。

二、proxy代理

ngx_http_proxy_module

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

2、缓冲区
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

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

4、超时
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

5、配置
vim /etc/nginx/conf.d/default.conf
location / {
# root /usr/share/nginx/html;
# index index.html index.htm;
proxy_pass http://192.168.10.131: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

6、解释
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.10.133,访问服务器地址

观察131的日志

192.168.10.133 - - [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.10.1"

192.168.10.133 代理服务器地址
192.168.10.1 客户机地址
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK