Nginx将请求分发到各web应用
2016-04-06 07:22
639 查看
介绍了VMWare12虚拟机、Linux(CentOS7)系统安装、部署Nginx1.6.3代理服务做负载均衡。接下来介绍通过Nginx将请求分发到各web应用处理服务。
一、Web应用开发
1、asp.net mvc5开发
(1)新建一个MVC5工程,新建一个Controller,在Index方法实现将当前时间保存到Session["mysession"],并写Cookies["mycookies"]存储主机名和当前时间。
(2)在Controller中新增第二个方法GetSession,显示Session和Cookies的值。
(3)将session和cookies信息在页面显示,GetSession视图代码如下:
以上实现session和cookies读写,为了验证负载均衡下,每次请求处理是否保持一致,接下来重要内容,做负载均衡如何如何保持session一致,对于asp.net技术session原理此处不做介绍,网上搜索下大把。
2、Session共享技术
.Net平台对支持几种session存储模式:
(1)InProc 模式
session存储于当前站点在同一个进程内,修改web.config或者bin中文件更新,会导致session丢失。此模式为默认模式。
(2)aspnet state 模式
aspnet state是将session存储在状态服务中,需要启动ASP.NET State Service,能看到进程aspnet_state.exe。还需要在web.config配置此模式。
(3)SQLServer 模式
此模式需要SQL Server配置相关信息,启动代理服务、数据库账号及表,并将web.config指向数据库。
(4)第三方扩展 模式
本框架采用此模式,将session存储到其他存储,比如:Memcached、redis缓存中,达到共享session的目的。可以通过实现ASP.NET中的SessionStateStoreProviderBase这个抽象类扩展。本系统采用将session存储在redis缓存中,通过引入 RedisSessionStateProvider组件。
3、Nginx服务状态情况
在centos终端输入命令service nginx status 查看情况,确保服务正常运行。
4、Web站点部署
部署两个站点分别为:
站点A:端口为8081,
站点B:端口为8082,
二、功能效果展现
(1)浏览器访问Index方法,http://192.168.119.128/demo,显示如下:
(2)浏览器访问GetSession方法,http://192.168.119.128/demo/getsession,显示如下:
通过以上验证,获取到的session和cookies都是一致。
作者:andon
出处:http://www.cnblogs.com/Andon_liu
一、Web应用开发
1、asp.net mvc5开发
(1)新建一个MVC5工程,新建一个Controller,在Index方法实现将当前时间保存到Session["mysession"],并写Cookies["mycookies"]存储主机名和当前时间。
@{ ViewBag.Title = "GetSession"; } <h2>站点:A -- GetSession</h2> <span>站点:A</span> <br /> <span>Session Value: @ViewBag.DD</span> <br/> <br /> <span>Session SCode: @ViewBag.SCode</span> <br /> <br /> <span>Session ID: @ViewBag.SID</span> <br /> <br /> <span>Cookies ID: @ViewBag.CID</span> <br /> <br /> <span>Cookies Values: @ViewBag.CVAL</span> <br /> <br /> <span>Cookies Values: @ViewBag.CDO</span>
以上实现session和cookies读写,为了验证负载均衡下,每次请求处理是否保持一致,接下来重要内容,做负载均衡如何如何保持session一致,对于asp.net技术session原理此处不做介绍,网上搜索下大把。
2、Session共享技术
.Net平台对支持几种session存储模式:
(1)InProc 模式
session存储于当前站点在同一个进程内,修改web.config或者bin中文件更新,会导致session丢失。此模式为默认模式。
(2)aspnet state 模式
aspnet state是将session存储在状态服务中,需要启动ASP.NET State Service,能看到进程aspnet_state.exe。还需要在web.config配置此模式。
(3)SQLServer 模式
此模式需要SQL Server配置相关信息,启动代理服务、数据库账号及表,并将web.config指向数据库。
(4)第三方扩展 模式
本框架采用此模式,将session存储到其他存储,比如:Memcached、redis缓存中,达到共享session的目的。可以通过实现ASP.NET中的SessionStateStoreProviderBase这个抽象类扩展。本系统采用将session存储在redis缓存中,通过引入 RedisSessionStateProvider组件。
Install-Package Microsoft.Web.RedisSessionStateProvider
3、Nginx服务状态情况
在centos终端输入命令service nginx status 查看情况,确保服务正常运行。
4、Web站点部署
部署两个站点分别为:
站点A:端口为8081,
站点B:端口为8082,
二、功能效果展现
(1)浏览器访问Index方法,http://192.168.119.128/demo,显示如下:
(2)浏览器访问GetSession方法,http://192.168.119.128/demo/getsession,显示如下:
通过以上验证,获取到的session和cookies都是一致。
作者:andon
出处:http://www.cnblogs.com/Andon_liu
相关文章推荐
- Nginx负载均衡
- nginx
- Nginx On rhel6.4
- 使用Nginx+FFMPEG搭建HLS直播转码服务器
- nginx配置多站点
- 10分钟搭建 nginx +php +mysql(LNMP)此为线上环境配置专用
- Nginx的负载均衡 - 加权轮询 (Weighted Round Robin) 下篇
- Nginx的负载均衡 - 加权轮询 (Weighted Round Robin) 上篇
- centos 7 安装nginx
- Nginx的负载均衡 - 最少连接 (least_conn)
- Nginx的负载均衡 - 保持会话 (ip_hash)
- Nginx的负载均衡 - 一致性哈希 (Consistent Hash)
- nginx字体文件配置
- yum install nginx
- Nginx 这么详细 你不服不好使
- nginx 解决session共享问题(jvm-route)方式(其实没有真正解决共享问题)
- CentOS6.5编译安装Nginx和Openssl
- linux下安装nginx(转载)
- nginx $uri 和 $request_uri 的区别
- Nginx做负载均衡器以及proxy缓存配置