IIS应用程序池多工作进程设置及Session共享

合集下载

session共享方案

session共享方案

session共享方案Session共享方案。

在现代Web应用程序中,会话(session)管理是一个非常重要的问题。

随着用户量的增加和系统规模的扩大,会话管理变得更加复杂。

在分布式系统中,如何实现session共享成为了一个挑战。

本文将介绍几种常见的session共享方案,希望能够帮助开发人员更好地理解和选择合适的方案。

1. 数据库共享。

数据库共享是一种常见的session共享方案。

在这种方案中,所有的应用服务器共享同一个数据库,将session数据存储在数据库中。

当一个应用服务器创建了一个session,其他应用服务器可以通过访问数据库来获取这个session的数据。

这种方案的好处是数据共享简单,易于实现。

但是由于数据库的读写操作比较耗时,会影响系统的性能。

2. 缓存共享。

缓存共享是另一种常见的session共享方案。

在这种方案中,所有的应用服务器共享同一个缓存集群,将session数据存储在缓存中。

当一个应用服务器创建了一个session,其他应用服务器可以通过访问缓存来获取这个session的数据。

这种方案的好处是读写操作快速,不会影响系统的性能。

但是缓存的一致性和可靠性需要额外的考虑和处理。

3. 分布式缓存共享。

分布式缓存共享是在缓存共享的基础上进一步发展的方案。

在这种方案中,所有的应用服务器共享一个分布式缓存集群,将session数据存储在分布式缓存中。

这种方案的好处是读写操作快速,而且可以很好地处理缓存的一致性和可靠性。

但是需要额外的配置和管理,成本较高。

4. 网络存储共享。

网络存储共享是一种比较传统的session共享方案。

在这种方案中,所有的应用服务器共享同一个网络存储,将session数据存储在网络存储中。

这种方案的好处是数据共享简单,易于实现。

但是由于网络存储的读写操作比较耗时,会影响系统的性能。

5. 内存共享。

内存共享是一种比较简单和高效的session共享方案。

在这种方案中,所有的应用服务器共享同一个内存,将session数据存储在内存中。

教你如何设置IIS应用程序池

教你如何设置IIS应用程序池

教你如何设置IIS应用程序池什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。

因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。

Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式。

工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性。

那么如何设置两种工作模式呢?启动IIS管理器,右击网站,选择“属性”,打开属性对话框(图1)。

在IIS 6.0工作进程隔离模式下,所有的应用程序代码都在隔离环境中运行,它们是如何进行隔离的呢?Windows 2003新增了应用程序池,工作进程隔离模式允许客户创建多个应用程序池,每个应用程序池都可以有不同的配置。

因为这些应用程序池直接从内核(而非WWW服务)接收它们的请求,所以性能和可靠性得到了增强。

要隔离运行在同一台计算机上但属于不同网站的Web应用程序,需要为每个网站创建单独的应用程序池。

创建应用程序池在IIS管理器中,打开本地计算机,右键单击“应用程序池”,选择新建“应用程序池” (必须在工作进程隔离模式下才能建立应用程序池)。

“应用程序池名称”框中,输入新的应用程序池名称。

如果在“应用程序池ID”框中出现的 ID (如:AppPool #1)不是您想要的,可进行重命名。

如果您单击了“将现有应用程序池作为模板”,请在“应用程序池名称”框中右键单击想要用来作为模板的应用程序池。

最后单击[确定]。

指派应用程序池在 IIS 管理器中,右键单击您要为其指派应用程序池的应用程序,然后单击“属性”。

单击“主目录”选项卡,确认您正在指派的目录或虚拟目录的“应用程序名”是否已被填写。

如果“应用程序名”框尚未被填写,请单击“创建”,然后输入名称。

在“应用程序池”列表框中,选择您想要为其指派的应用程序池的名称。

IIS应用程序池配置详解及优化

IIS应用程序池配置详解及优化

IIS应⽤程序池配置详解及优化参数说明1.常规属性名称属性详解NET CLR 版本配置应⽤程序池,以加载特定版本的 .NET CLR。

选定的 CLR版本应与应⽤程序所使⽤的相应版本的 .NET Framework 对应。

选择“⽆托管代码”将导致所有的 请求失败。

队列长度HTTP.sys 将针对应⽤程序池排队的最⼤请求数。

如果队列已满,新请求将收到 503“服务不可⽤”的响应。

默认队列长度设置是1000,范围在10-65535 之间。

名称应⽤程序池名称是应⽤程序池的唯⼀标识符。

启动模式将应⽤程序池配置为在按需运⾏模式或始终运⾏模式下运⾏。

启⽤ 32 位应⽤程序如果针对 64 位操作系统上的应⽤程序池将该属性设为 True,则为应⽤程序池提供服务的⼯作进程将处于 WOW64 (Windows on Windows64)模式。

WOW64模式下的进程是仅加载 32 位应⽤程序的 32 位进程。

托管管道模式将 配置成作为 ISAPI 扩展并以经典模式来运⾏。

在后⼀种情况下,托管代码集成到请求处理管道中。

Classic模式:指的是与IIS 6或者之前版本保持兼容的⼀种模式,⼀个典型问题就是,在处理这种动态⽹站的时候,它是通过⼀个所谓的ISAPI程序,作为插件的⽅式来⼯作的。

针对不同的动态应⽤程序(例如ASP,PHP等),会需要不同的ISAPI。

Integrated模式:这种全新的模式,允许我们将更好地与IIS集成,甚⾄允许我们在中编写⼀些功能(例如Module)来改变IIS的⾏为(扩展)。

集成的好处是,不再通过ISAPI的⽅式,提⾼了速度和稳定性。

⾄于扩展,则可以使得我们对于IIS,以及其他类型的请求有更多的控制。

2.CUP属性名称属性详解处理器关联掩码强制此应⽤程序池的⼯作进程在特定 CPU 上运⾏的⼗六进制掩码。

如果启⽤了处理器关联,则值 0 将导致错误。

处理器关联掩码(64位选项)为64位计算机制定强制此应⽤程序池的⼯作进程在特定 CPU 上运⾏的⾼顺序 DWORD ⼗六进制掩码。

session多服务器共享的方案

session多服务器共享的方案

session多服务器共享的⽅案session的存储了解以前是怎么做的,搞清楚了来龙去脉,才会明⽩进⾏共享背后的思想和出发点。

我喜欢按照这样的⽅式来问(或者去搞清楚):为什么要session要进⾏共享,不共享会什么问题呢?php中session的原理,以前做了⼀下总结,可以参考:以前业界使⽤session的做法:默认情况下,php的session⽂件是保存在磁盘⽂件中。

在php.ini配置⽂件中的配置项如下:session.save_handler = filessession.save_path = "N;/path"第⼀个配置项是指定使⽤files(⽂件形式)存储session数据。

第⼆个参数指定保存的路径。

N表⽰⽣成多少级⽬录(不放到⼀个⽬录下,分散到多个磁盘⽬录中去)我的配置项是:session.save_path = "F:/wamp/tmp"。

那么就会去这个⽬录下⾯看到很多session数据的⽂件。

当我们使⽤php的内置函数session_start()的时候,就是去上⾯指定的磁盘⽬录把session数据载⼊,实际上就是拿类似sess_74dd7807n2mfml49a1i12hkc45的⽂件。

74dd7807n2mfml49a1i12hkc45就是⼤家经常说的什么session的id号。

php.ini中还有⼀个关键配置项,如下: = PHPSESSIDPHPSESSID就是cookie的名称,其实上⾯⼀串"74dd7807n2mfml49a1i12hkc45"会保存在⼀个名为PHPSESSID的cookie中。

根据http的请求机制,当浏览器请求的时候,头部信息会把浏览器中的cookie⼀起发给服务器。

PHPSESSID这个cookie也是在其中发给了服务器,php引擎通过读取PHPSESSID的值来确定要载⼊哪个session⽂件。

IIS中应用程序池原理解析

IIS中应用程序池原理解析

IIS中应用程序池原理解析2009-06-24 上午 00:51对于已经能熟练挂接动易后台建设网站的同学们而言,“应用程序池”肯定不是一个陌生的名词。

但是关于应用程序池运行机理—即为什么每次建站的时候基本都要设置应用程序池,可能并不是特别清晰。

本篇文章将详细阐述和应用程序池有关的动态网站的基础知识。

(黎智聪师兄笔述,李鸿儒记录整理)先看看百度百科是怎么解释应用程序池的:应用程序池:这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。

因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。

Windows 2003同时支持两种工作模式,默认为IIS 6.0工作进程隔离模式。

工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性。

那么如何设置两种工作模式呢?启动IIS管理器,右击网站,选择“属性”,打开属性对话框(图1)。

在IIS 6.0工作进程隔离模式下,所有的应用程序代码都在隔离环境中运行,它们是如何进行隔离的呢?Windows 2003新增了应用程序池,工作进程隔离模式允许客户创建多个应用程序池,每个应用程序池都可以有不同的配置。

因为这些应用程序池直接从内核(而非WWW服务)接收它们的请求,所以性能和可靠性得到了增强。

要隔离运行在同一台计算机上但属于不同网站的Web应用程序,需要为每个网站创建单独的应用程序池。

下面用比较通俗的话解释一下:1.静态站点用DW设计好后,本地即可查看网页,而动态站点则不同,需要用iis 挂接后才能查看。

这也是HTML(静态站点)和ASP(动态站点)的不同点之一:HTML不需要调用内存和cpu进行换算,而ASP需要调用内存和cpu进行换算后方可呈现在用户面前。

因为ASP需要把程序的代码翻译成服务器可以识别的1和0,再通过IIS的导出生成HTML代码。

标准iis配置流程

标准iis配置流程

标准iis配置流程
以下是标准IIS配置流程的中文介绍,包括安装IIS、创建站点、应用程序池配置和发布应用程序等操作。

1. 安装IIS
首先需要在操作系统上安装IIS。

打开“控制面板”→“程序”→“开启或关闭Windows功能”,勾选“Internet Information Services”,确认安装。

2. 创建站点
在IIS管理界面选中“Sites”→“Add Website”,填写站点信息。

其中,“Site name”为站点名称,“Physical path”为站点文件存储路径,“Binding”为站点绑定域名和端口。

点击添加后,站点就创建完成了。

3. 应用程序池配置
在IIS管理界面选中“Application Pools”,创建新的应用程序池。

在“Advanced Settings”中修改应用程序池的配置,例如:.NET CLR Version、启用32位应用程序等。

在站点下创建应用程序,将应用程序部署到站点的文件夹中,例如:
D:\WebSite\myApp。

在应用程序的“Advanced Settings”中设置应用程序池。

最后,在浏览器中输入站点域名或IP地址,加上应用程序名称,就能访问应用程序了。

以上就是标准IIS配置流程的中文介绍,这些操作可以使IIS正常运行以及发布应用程序。

IIS配置过程中还有一些高级配置,如HTTP Compression、SSL证书配置等,可以根据需要进行调整。

IIS站点建立独立用户、权限、程序池分配、相关安全设置基本教程

IIS站点建立独立用户、权限、程序池分配、相关安全设置基本教程

前言:在Windows server 2003系统下,用IIS架设Web服务器,合理的为每个站点配置独立的Internet来宾账号,这样可以限制Internet 来宾账号的访问权限,只允许其可以读取和执行运行网站所的需要的程序。

如果为网站内的网站程序、图片、附件或数据库等的文件分配合理、严格的读取、写入、修改、执行等权限,可以禁止访问该网站的用户访问其它目录和执行危险的命令,以防范通过上传恶意程序到网站并入侵网站、服务器的目的。

下面方法通过建立独立用户并分配基本访问权访问不同的网站以防止跨站入侵。

一、创建用于访问网站的独立用户1.选中“我的电脑”右键,选择“管理”,打开“计算机管理”,选择“本地用户和组”,然后点击“用户”,接着“右键”,新建一个用户,如下图:最后点击“创建”,完成用户创建。

2.取消新建立的用户属的用户组“USERS”,选择用户,然后“右键”,选择“属性”,让用户不属于任何组,如下图:二、应用新建立的用户到网站根目录1.选中网站根目录,“右健”,选择“属性”,然后选中“安全”如下图:2.默认情况我们已经删除别的用户了,接下就添加新建立的用户,赋予这个文件夹相应的权限,选择“添加”,查找到对应的用户,如下图:3.对于ASP或PHP网站程序,一般情况网站根目录要分配有administrator、system、访问网站的独立用户的等用户的默认权限。

网站根目录一定不能分配“Everyone”和“Users”这两个用户。

4.如果网站根目录下面有要写入文件的文件夹,如“上传图片或有Access数据库”需要写入数据的,可以在根目录分配“写入”权并继承下到子目录;为更安全可以单独选中需要写入数据的文件夹,然后按上面的操作,赋予这个文件夹“写入”权。

5.对于的程序,在服务器安装有Microsoft .NET Framework 组件的前提下,除了分配上面的用户访问权外,有些网站程序还需要在网站目录添加“IIS_WPG”用户。

IIS之在IIS7、IIS7.5中应用程序池最优配置方案

IIS之在IIS7、IIS7.5中应用程序池最优配置方案

IIS之在IIS7、IIS7.5中应⽤程序池最优配置⽅案 找到Web站点对应的应⽤程序池,“应⽤程序池” →找到对应的“应⽤程序池” →右键“⾼级设置...”⼀、⼀般优化⽅案 1、基本设置 [1] 队列长度:默认值1000,将原来的队列长度改为 65535。

[2] 启动32位应⽤程序:默认值False,改为True,否则安装⼀些32的组建或32位的php都会出错。

[3] 托管管道模式:Integrated 或 Classsic。

2、⾼级设置 [1] 闲置超时(分钟):默认20分钟,修改设长。

[2] 快速故障防护→已启⽤:默认True,改为False。

3、解决PEP第⼀次打开PEP速度慢 回收间隔时间 使⽤windows server 2008 r2解决回收假死的问题 打开应⽤程序池 -> ⾼级设置 ->在“禁⽌重叠回收”⾥选择“true”,这样就有效避免了应⽤程序池回收假死问题。

⼆、⽀持同时10万个请求 通过对IIS7的配置进⾏优化,调整IIS7应⽤池的队列长度,请求数限制,TCPIP连接数等⽅⾯,从⽽使WEB服务器的性能得以提升,保证WEB访问的访问流畅。

站点碰到如下问题: Error Summary: HTTP Error 503.2 - Service Unavailable The serverRuntime@appConcurrentRequestLimit setting is being exceeded. Detailed Error Information: Module IIS Web Core Notification BeginRequest Handler StaticFile Error Code 0x00000000 由于之前使⽤的是默认配置,服务器最多只能处理5000个同时请求,今天下午由于某种情况造成同时请求超过5000,从⽽出现了上⾯的错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IIS应用程序池多工作进程设置及Session共享
1 概述
微软的IIS作为Windows平台下网站发布的默认WEB服务器,在性能上提供了比较大的
弹性和可伸缩性,通过应用程序池工作进程数的设置,可以支持从几十到上万并发数量的访问。

本文档对相应设置过程进行操作指引,并对设置过程中的注意事项进行重点描述。

2 应用程序池多工作进程设置
根据以往的经验值,在主流的PC-SERVER主机(Xeon E5645 @ 2.4GHz,6核心12线程,32G
内存)上,每个应用程序池的单一工作进程,能够大约承受30-50个左右的并发,如果超出此并发数量,可能会出现IIS无法响应、或响应时间明显变长的问题。

通过合理设置应用程序池的最大工作进程数,可显著提高IIS应对高并发的能力,减少网站响应时间。

2.1 设置步骤
1、找到待设置网站对应的应用程序池,如图 1所示:
图 1 找到应用程序池
2、在所选应用程序池上点击右键,选择【高级设置】,如图 2所示:
图 2 高级设置
3、在弹出的【高级设置】窗口中找到【最大工作进程数】,并设置为合理值,如图 3所示:
图 3 设置最大工作进程数
4、点击【确定】按纽保存设置。

2.2 注意事项
图 5 启动服务
4、打开待修改网站主目录下的web.config配置文件,搜索找到“<sessionstate>”配置节点,如果不存在配置节点,则在“<system.web>”节点下新建“<sessionstate>”配置节点,并将节点属性修改为:
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" /> 其中“tcpip=*”后的主机IP地址和端口可根据实际情况修改。

修改完后保存配置文件即可。

3.2 注意事项
1、 Session中保存的自定义对象必须显示标记为可序列化“[serializable]”。

如果未显示标记为可序列化,则在访问页面时会报错。

2、 StateServer服务器必须为Windows Server操作系统,如Windows Server 2003或Windows Server 2008。

相关文档
最新文档