当前位置:首页 > Windows程序 > 正文

windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服

2021-03-13 Windows程序

本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分布式架构;下面将先给出整个架构的核心节点简介,希望各位多多点赞:

. 架构设计图展示

. nginx+iis构建服务集群

. redis存储分布式共享的session及共享session运作流程

. redis主从配置及Sentinel管理多个Redis集群

. 定时框架Task.MainForm提供数据给redis集群储存

以上是整个架构的我认为核心的部分,其中没有包含有数据库方面的设计(请忽略),下面先发张架构设计图:

以上是个人的看法,下面来正式分享今天的文章吧(nginx+iis构建服务集群):

. nginx常用基础配置总结

. 用nginx搭建静态文件缓存服务

. nginx+iis构建服务集群

下面一步一个脚印的来分享:

. nginx常用基础配置总结

首先,我们需要从网上下载nginx服务文件,具体windows系统下用何版本请网上搜索,我这里用的版本是nginx-1.10.1;下载下来后目录结构是这样的:

我们需要了解并且操作的配置文件是conf文件夹下面的nginx.conf文件,该目录下的其他文件一般采用默认的就行;打开文件不看#号注释的行;events节点:

events节点:

worker_connections:默认值1024,代表nginx服务地址的最大连接数1024;

http节点

include:mime.types其实对应的是nginx.conf同级目录下的mime.types文件,里面是能访问的mime类型

default_type:application/octet-stream默认类型

keepalive_timeout:连接超时时间,单位秒

server节点:

listen:nginx监听的端口号

server_name:服务名称

location:路由设置(支持正则表达式);其中常用到的节点有

  proxy_connect_timeout:nginx跟后端服务器连接超时时间(代理连接超时)

  proxy_pass:代理地址名称

  proxy_set_header:设置让服务端获取真实的Ip,端口等;对应的值有(Host,X-Real-IP,X-Forwarded-For)

upstream节点:

设定负载均衡的服务器列表

设置代理地址名称(和上面的proxy_pass对应)

设置负载均衡分配规则,常用规则有:

  轮询:挨个轮询访问(默认)

  ip_hash:访问一次后固定访问一个后端服务器,可以解决session的问题

  fair:后端服务器的响应时间来分配请求,响应时间短的优先分配

  weight:权重,值越大访问量越多

proxy_temp_path节点:代理临时文件夹路径

proxy_cache_path节点:代理缓存文件夹路径(缓存文件都在这里)

以上介绍的信息基本能完成一个负载均衡常用搭建了,其他的更详细的节点请参考官网

. 用nginx搭建静态文件缓存服务

通常分布式架构的一些css,js,图片文件都是被缓存起来的,这样提供高效的加载速度;由文章开头时发布的一张架构图可以看到,用户A要真实访问到服务集群需要经过nginx这道服务器转发,这样需要跳转一次才能获取到css静态文件明显比直接在nginx服务器就返回这些文件的速度慢;所以这种情况下就有了把静态资源缓存到nginx服务上的需求了;下面先来看下nginx配置文件需要的配置信息:

#负载均衡的服务器列表 upstream shenniu.test.com{ server 127.0.0.1:4041; } ##cache## proxy_connect_timeout 5; proxy_read_timeout 60; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_temp_path D:/E/nginx-1.10.1/home/temp_dir; proxy_cache_path D:/E/nginx-1.10.1/home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g; ##end##

注意这里upstream节点后面的shenniu.test.com域名在后面会使用,节点里面的server对应ip:端口如:server 127.0.0.1:4041(这个是真实的站点项目的ip+端口),然后需要设置保存缓存文件的路径:proxy_cache_path和proxy_temp_path

然后server节点里面listen监听3031端口,server_name:shenniu.test.com,增加静态资源路由配置

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/60281.html