网站网站怎么做,临沂网站建设哪家更好,宁波公司网站制作,wordpress 动漫 主题下载地址目录 1.反向代理介绍#xff1a; 2.七层代理和四层代理#xff1a; 2.1 七层代理#xff1a; 2.2 四层代理#xff1a;
3.反向代理web服务器#xff1a; 3.1 代理服务器配置#xff1a;
3.2 服务器配置 #xff1a;
3.3 客户端访问#xff1a;
3.4 代理不同端口 2.七层代理和四层代理 2.1 七层代理 2.2 四层代理
3.反向代理web服务器 3.1 代理服务器配置
3.2 服务器配置
3.3 客户端访问
3.4 代理不同端口
4.反向代理动静分离 4.1 准备 4.2 代理服务器配置 4.3 动态服务器配置 4.4 静态服务器配 4.5 测试
5.反向代理服务器的缓存功能 5.1 主配置文件定义缓存参数 5.2 子配置文件调用缓存功能 5.3 示例
代理服务器
测试 6.反向代理客户端IP透传 6.1反向代理服务器配置 6.2 服务器日志
7.反向代理负载均衡 7.1 默认算法轮询
7.2 加权轮询
7.3 IP_hash:
7.4 url_hash:
7.5 least_conn:
7.6 使用场景总结: 1.反向代理介绍
反向代理reverse proxy指的是代理外网用户的请求到内部的指定的服务器并将数据返回给用户的一种方式这是用的比较多的一种方式。 Nginx 除了可以在企业提供高性能的web服务之外另外还可以将 nginx 本身不具备的请求通过某种预定义的协议转发至其它服务器处理不同的协议就是Nginx服务器与其他服务器进行通信的一种规范主要在不同的场景使用以下模块实现不同的功能 2.七层代理和四层代理 2.1 七层代理
七层是最常用的反向代理只能配置的在nginx配置文件的http模块中配置的方法名称upstream 模块不能写在server中也不能在location中在http模块当中是独立的一个配置 2.2 四层代理
四层代理是基于tcp/ip协议层的代理转发方式可以实现基于ip地址和端口进行负载均衡转发。四层代理无法获取http请求当中的URL信息只能对tcp/udp数据包进行转发。流量转发。配置的方法名称streamstream是不能配置在http模块中配置在全局当中。是属于一个独立的模块不属于其他任何模块。
3.反向代理web服务器 3.1 代理服务器配置
vim /apps/nginx/conf.d/www.conf
server{listen 80;server_name www.wzw.com;root /apps/nginx/html;location / {proxy_pass http://192.168.88.101;
}}
3.2 服务器配置 vim /apps/nginx/html/index.html
html
body
h1this is yunjisuan /h1
img srchttp://www.wzw.com/2.jpg/
/body
/html3.3 客户端访问 3.4 代理不同端口 代理服务器添加监听端口 4.反向代理动静分离 4.1 准备 4.2 代理服务器配置
server{listen 80;listen 8080;server_name www.wzw.com;root /apps/nginx/html;location /static {proxy_pass http://192.168.88.128;
}location /api {proxy_pass http://192.168.88.101;
}
}nginx -s reload 4.3 动态服务器配置 cd /apps/nginx/htmlmkdire apivim index.htmlapiapiapiapiapiapiapivim /apps/nginx/conf/nginx.confserver块添加监听端口listen 8080;nginx -s reload 4.4 静态服务器配 cd /apps/nginx/htmlmkdire apivim index.htmlstaticstaticstaticstaticstaticstatic 4.5 测试 5.反向代理服务器的缓存功能 后端服务器突然关闭时客户端无法访问代理服务器的缓存功能可以加强安全稳定性。 5.1 主配置文件定义缓存参数
proxy_cache_path /apps/nginx/proxycache #定义缓存保存路径
levels1:1:1 #定义缓存目录结构层次
keys_zoneproxycache:20m #指内存中缓存的大小主要用于存放key
inactive120s #缓存有效时间
max_size10g; #最大磁盘占用空间磁盘存入文件内容的缓存空间最大值 5.2 子配置文件调用缓存功能
proxy_cache proxycache ##使用定义名称
proxy_cache_key $request_uri; #对客户端url的数据进行MD5的运算做为缓存的key
proxy_cache_valid [code ...] time; #定义对【响应码】的响应内容的缓存时长
proxy_cache_valid any 1m; #除指定的状态码返回的数据以外的缓存多长时间,必须设置,否则不会缓存 清理缓存 方法1rm -rf 缓存目录 还是这个方便。。 方法2: 第三方扩展模块ngx_cache_purge 5.3 示例
代理服务器
vim /apps/nginx/conf/nginx.confhttp模块添加proxy_cache_path /apps/nginx/proyxcache levels1:1:1 keys_zoneproxycache:20m inactive120s max_size1g;vim /apps/nginx/conf.d/www.confserver块添加proxy_cache proxycache;proxy_cache_key $request_uri;proxy_cache_valid 200 302 301 10m;proxy_cache_valid any 5m;测试 真实服务器关闭服务 6.反向代理客户端IP透传 6.1反向代理服务器配置
location / {proxy_pass http://192.168.88.101:8080;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#添加 客户端IP和反向代理服务器IP到请求报文头部
}proxy_set_header X-Real-IP $remote_addr;#也可以使用只添加客户端IP到请求报文头部,转发至后端服务器 6.2 服务器日志
$http_x_forwarded_for 记录跳转信息默认日志中有此项。如果是自定义日志需要添加。 7.反向代理负载均衡 Nginx 可以基于ngx_http_upstream_module模块提供服务器分组转发、权重分配、状态监测、调度算法等高级功能。 7.1 默认算法轮询 最基本的配置方法每个请求会按时间顺序逐一分配到不同的后端服务器基本上1:1。
upstream wzw { ##定义一组服务器组server 192.168.88.101;server 192.168.88.128;}server{listen 80;server_name www.wzw.com;root /apps/nginx/html;location / {proxy_pass http://wzw; ##代理到wzw组proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}7.2 加权轮询 加权轮询建立在轮询算法之上通过给不同web服务器权重让处理能力更强的服务器可以分配到更多的请求。
upstream wzw { ##定义一组服务器组server 192.168.88.101 weight5;server 192.168.88.128 weight1;}server{listen 80;server_name www.wzw.com;root /apps/nginx/html;location / {proxy_pass http://wzw; ##代理到wzw组proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}7.3 IP_hash:
ip_hash根据IP地址计算出hash值使用ip_hash算法同一客户端的请求会被分配到同一个后端服务器从而保证会话的稳定性请求速度块。缺点如果后端服务器数量发生改变hash会重新计算请求服务器也会改变。
upstream wzw { ip_hash; ##同一个IP客户端固定访问一个后端服务器server 192.168.88.101; weight5;server 192.168.88.128; weight1;
}
7.4 url_hash: 根据uri地址计算hash值使用url_hash会把相同请求的uri分配到同一个后端web服务器
upstream wzw { hash $request_uri consistent; #基于用户请求的uri做hashserver 192.168.88.101; weight5;server 192.168.88.128; weight1;
}
7.5 least_conn: 最少连接调度算法优先将客户端请求调度到当前连接最少的后端服务器 主要适用于后端服务器处理任务耗时不同的情况避免了所以请求集中在处理能力更强的服务器上一般配合加权轮询使用
upstream wzw { least_conn;server 192.168.88.101; weight5;server 192.168.88.128; weight1;
}
7.6 使用场景总结:
小场景并发量很小默认算法就可以满足后端web服务器的处理性能有差异加权轮询与最少连接数配合使用大型并发ip_hash或url_hash(可直接访问缓存从而缓解后端服务器压力第一次请求后会有贝蒂缓存而且因hash算法原因请求的后端web服务器不会发生变化从而可以提高访问速度。 注
ip_hash:后端服务器数量发生变化请求的服务器也会发生变化
url_hash:请求的地址发生变化请求的服务器也可能发生变化