iis - IIS 7 上的负载均衡网站

标签 iis iis-7

正在考虑为 IIS 上的 Windows 托管网站实现负载平衡,但想知道这样做涉及的问题。网站是 ASP.NET - 混合了自定义身份验证和 ASP.NET 身份验证。例如:

  • 文件:存储在网络共享上是显而易见的选择,但我预计它会对文件服务器提出大量要求,使网站变慢,并可能导致“已达到网络 BIOS 命令限制”问题,或速度变慢其他数据流量
  • session 状态:最好存储在 SQL 数据库中,以防止响应来自不同服务器时出现问题?这该怎么做?我认为是 web.config 设置?
  • 服务器停机时间:当服务器停机(崩溃、硬件故障等)或更新时,网站是否还能正常运行?
  • DNS:因为它是负载平衡的,我假设站点需要两个 IP 地址?使用 Microsoft DNS

关于文件,它们是否可以轻松地在服务器之间同步?最多可能有 8MB 的文件(有时更大)。 DFS 是 future 可能考虑的一个选项,但是否有其他技术(除了 robocopy)可以使用?

最佳答案

  • 文件:指向网络共享解决了一​​些问题并引入了其他问题,例如单点故障。对文件共享进行集群可以稍微缓解这种情况,但您仍然只有一份数据副本。我更喜欢无共享方法,其中内容对于每个网络服务器都是本地的,从而消除了 SPOF 并在提供内容时将网络从等式中移除。我目前正在使用 robocopy 来执行此操作,而不是 DFS - 不喜欢 AD 绑定(bind),对分区网络基础结构中服务器放置的限制。 Robocopy 也不理想。

  • session 状态 - 同意,ASPState SQL 数据库。不过,在我考虑这个问题时,请确保在 web.config 中为所有服务器设置一个通用的机器 key 。

放下<sessionState allowCustomSqlDatabase="true" cookieName="yourcookiname" mode="SQLServer" cookieless="false" sqlConnectionString="connnstringname" sqlCommandTimeout="10" timeout="30"/>

<connectionStrings> <add name="connstringname" connectionString="Data Source=sqlservername;Initial Catalog=DTLAspState;Persist Security Info=True;User ID=userid;Password=password" providerName="System.Data.SqlClient"/> </connectionStrings>

进入 web.config。 最后,运行 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -S sqlservername -E -ssadd -sstype p

  • 服务器停机 - 当单个服务器停机时,网站仍可正常运行。当然,这取决于您的网络服务器 - 确保它没有使用“ping”作为唯一指标来确定它是否应该向该网络服务器发送请求。
  • DNS - 单项。遗憾的是 HTTP 不支持 SRV 记录。

关于iis - IIS 7 上的负载均衡网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/777921/

相关文章:

asp.net-mvc - 更新 ASP.NET MVC Web 应用程序 : Can I simply update one DLL in bin/?

security - 将 SSL 传输到同一域 IIS7 的新服务器

asp.net-mvc - 外部样式表内容以某种方式包含在页面上

c# - 在 IIS 中托管 NServiceBus 发布者是否安全?

wcf - 无法在 Windows 8 上的 IIS 中提供 WCF 服务

iis - IIS6有没有办法在同一个网站上同时做http和https?

c# - 如何使用 Microsoft.Web.Administration 命名空间在 IIS7 中干净地操作处理程序映射?

asp.net - ASMX服务可在开发服务器上使用,在部署到IIS 7.5时返回404

asp.net - 注销按钮 IIS6 ASP.NET 基本身份验证

iis - 在 IIS7 中,gzipped 文件不会保持这种状态