网站模板做网站,专业做轮胎的网站,淘客免费网站建设,wordpress 评论 验证码proxy代理功能
正向代理
什么是正向代理#xff1f;
正向代理#xff08;forward proxy#xff09;#xff0c;一个位于客户端和原始服务器之间的服务器。
工作原理
为了从原始服务器获取内容#xff0c;客户端向代理发送一个请求并指定目标#xff08;即原始服务器…proxy代理功能
正向代理
什么是正向代理
正向代理forward proxy一个位于客户端和原始服务器之间的服务器。
工作原理
为了从原始服务器获取内容客户端向代理发送一个请求并指定目标即原始服务器然后代理服务器向原始服务器转发请求并获取内容返回给客户端此时客户端才能使用正向代理。
示意图 备注
在系统运维工作中很难使用到nginx的正向代理此处忽略正向代理的学习。
反向代理
什么是反向代理
反向代理reverse proxy一个位于服务端的服务器。
工作原理
代理服务端接收来自网络上的连接请求然后将请求转发给内部网络的服务端并从服务端获取结果返回给请求的客户端
示意图 正向代理和反向代理的区别
位置不同正向代理架设在客户端和服务端直接而反向代理架设在服务端。代理对象不同正向代理是代理的客户端服务器不知道实际发起请求的客户端是谁而反向代理是代理的服务端客户端不知道实际提供服务的服务端是谁。
Nginx反向代理应用
模块名称
ngx_http_proxy_module
常见语法
代理设置 proxy_pass URL代理后端服务器URL适用范围location 缓冲区设置 proxy_buffering on | off缓冲区的开启与关闭适用范围http、server、location 缓冲区大小设置 proxy_buffer_size size设置缓冲区的大小适用范围http、server、location 缓冲区数量设置 proxy_buffers number size缓冲区数量大小适用范围http、server、location 忙碌的缓冲区大小设置 proxy_busy_buffers_size size设置忙碌的缓冲区大小适用范围http、server、location 头信息设置 proxy_set_header field value设置真实客户端地址适用范围http、server、location 连接超时时间设置 proxy_connect_timeout time连接超时设置适用范围http、server、location 读取超时时间设置 proxy_read_timeout读取超时设置适用范围http、server、location 发送超时时间设置 proxy_send_timeout timeout发送超时设置适用范围http、server、location
应用反向代理
注意使用的yum的Nginx服务方式实验。
配置网站Nginx服务服务端
路径/etc/nginx/conf.d/wangmingqu.conf 地址192.168.131.129
server {auth_basic 账号密码登录;auth_basic_user_file /etc/nginx/conf.d/.passwd;listen 80;server_name wang.wangmingqu.com;charset utf-8;location / {root /www/wangmingqu/;index index.html index.htm;}}测试数据
mkdir -p /www/wangmingqu/
echo 后端提供服务主机 /www/wangmingqu/index.html
echo 服务器主机的地址 /www/wangmingqu/index.html配置代理服务即proxy端
路径/etc/nginx/conf.d/nginx_proxy.conf 地址192.168.131.130
server {listen 80;server_name localhost;location / {proxy_pass http://wang.wangmingqu.com: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 60;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;}error_page 500 502 503 504 /50x.html;location /50x.html {root /usr/share/nginx/html;}}访问测试
nginx -t
systemctl reload nginx观察日志
可以看到最后一个参数显示了客户端的真实IP
192.168.131.130 - wangmingqu [18/Jan/2024:22:00:26 0800] GET / HTTP/1.0 304 0 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 192.168.131.1代理配置详解
代理设置 proxy_pass http://wang.wangmingqu.com:80; #代理后端web服务器配置 #语法格式proxy_pass URL; #指定要代理的服务端的协议、地址、端口和URL #URL设置方式http://localhost:80/url/、http://127.0.0.1:80/url/ #可配置区域location
proxy_redirect default; #修改web服务器返回的响应头中的location头域跟refresh头域数值 #语法格式proxy_redirect [default|offredirect replacement] #默认配置proxy_redirect default;即在转发时使用默认端口 #可配置区域http、server、location
客户端地址设置 proxy_set_header Host $http_host; #语法格式proxy_set_header field value; #默认设置proxy_set_header Host $http_host; #可配置区域http、server、location #转发时是否设置http头部 #如果web服务器设置了多个虚拟主机那么必须配置这一项如果不配置那么只显示最靠前的站点按照字母a到z排序。
proxy_set_header X-Real-IP $remote_addr; #转发时是否添加真实主机的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #客户端通过代理访问后端服务后端服务通过该变量获取客户端的真实IP
超时设置 proxy_connect_timeout 60; #语法格式proxy_connect_timeout 超时时间; #可配置区域http、server、location #Nginx代理与后端服务器连接超时时间 #连接超时设置。
proxy_send_timeout 60; #语法格式proxy_send_timeout 超时时间; #可配置区域http、server、location #Nginx代理等待后端服务器的响应时间 #发送超时设置。
proxy_read_timeout 60; #语法格式proxy_read_timeout 超时时间; #可配置区域http、server、location #后端服务器数据回传给Nginx代理的超时时间 #读取超时设置。
缓存设置 proxy_buffering on; #启用缓冲区设置 #可配置区域http、server、location
proxy_buffer_size 32k; #设置Nginx代理保存用户头信息的缓冲区大小 #可配置区域http、server、location
proxy_buffers 4 128k; #设置缓冲区文件个数及大小 #可配置区域http、server、location
proxy_busy_buffers_size 256k; proxy_max_temp_file_size 256k;
proxy缓存功能
简介
什么是代理缓存
在代理服务器上开启的缓存主要用于减少后端服务器的压力。
模块名称
代理缓存应用
后端服务器
路径/etc/nginx/conf.d/wangmingqu.conf 地址192.168.131.129
server {listen 80;server_name wang.wangmingqu.com;charset utf-8;location / {root /www/wangmingqu/;index index.html index.htm;}}代理服务器
子配置文件
路径/etc/nginx/conf.d/default.conf 地址192.168.131.130
#创建缓存存放目录
mkdir -p /www/nginx_proxy_cache/wangmingqu/proxy_cache_path /www/nginx_proxy_cache/wangmingqu/ levels1:2 keys_zoneproxy_wang_cache:10m max_size10g inactive60m use_temp_pathoff;server {listen 80;server_name locathost;location / {proxy_pass http://wang.wangmingqu.com: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 60;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;proxy_cache proxy_wang_cache;proxy_cache_valid 200 304 12h;proxy_cache_valid any 10m;proxy_cache_key $host$uri$is_args$args;add_header Nginx-Cache $upstream_cache_status;proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;}
}配置文件解释
proxy_cache_path /www/nginx_proxy_cache/wangmingqu/ lavels1:2 keys_zoneproxy_wang_cache:10m max_size10g inactive60m use_temp_pathoff;
proxy_cache_path声明代理缓存路径信息/www/nginx_proxy_cache/wangmingqu/缓存数据存放路径lavels1:2缓存时使用几级目录存储此处为二级目录存储keys_zoneproxy_wang_cache:10m定义一个名字叫proxy_wang_cache的缓存规则此缓存区规则的大小为10mmax_size10g定义最大的缓存空间大小为10Ginactive60m不活跃的缓存60分钟后会被清除use_temp_pathoff关闭用户临时路径的使用
proxy_cache proxy_wang_cache;
引用定义的缓存配置
proxy_cache_valid 200 304 12h;
定义状态码为200、304的数据缓存12个小时
proxy_cache_valid any 10m;
定义其他状态的数据缓存10分钟
proxy_cache_key h o s t host hosturi i s a r g s is_args isargsargs;
在存储用户信息
add_header Nginx-Cache “$upstream_cache_status”;
缓存状态返回给客户端
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
当出现500、502、503、504的错误码时代理服务会跳过此后端服务器并将请求发送到其他后端服务器
验证缓存服务
nginx -t
systemctl reload nginx访问结果 缓存目录