问题标签 [web-farm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
239 浏览

web-farm - IIS 7.5 服务器场是否需要位于域中?2008 年

我们在后端使用带有 SQL DB 的 Server 2008 R IIS 7.5。目前,系统与负载平衡场中配置的三台服务器正常工作,同时将数据传回 SQL DB。所有这些服务器都是独立的,位于它们自己的子网上,具有共同的管理员和密码。问题是……让一台服务器成为 PDC 并创建自己的域并将其余的记忆服务器加入域是否有优势?

0 投票
1 回答
750 浏览

asp.net - 在 Web 场中滚动部署 Web 应用程序

我们有带有 sql server 的 asp.net Web 应用程序,它部署在带有联合数据库的服务器场上。我们使用存储过程(而不是准备好的 sql 语句)和 inproc 会话。作为实现高可用性的一部分(至少对于具有受控更改集的服务包),我们打算在服务器场上使用滚动部署,这意味着我们这样做:

  1. 关闭一组服务器
  2. 在这些服务器上部署应用程序
  3. 启动这些服务器
  4. 关闭另一个组。对所有组重复 1-3。

虽然这意味着一些用户将被踢出,但该应用程序仍然可用,并且不需要放置维护页面。

简单的部分是部署 Web 应用程序,但更困难的部分是存储过程是否发生变化(例如添加了新参数)。有一点需要存储过程的两个版本(现有版本和正在部署的新版本)。

我们考虑了存储过程的 4 个选项:

  1. 如果版本有存储过程更改,请勿使用滚动部署
  2. 如果在发布中使用滚动部署,则只允许的存储过程,即使这意味着代码重复
  3. 在应用层引入存储过程版本控制和一些框架组件,以自动将版本号附加到正在调用的存储过程中。
  4. 覆盖现有存储过程并允许某些存储过程调用失败。

所有方法都有优点和缺点,其中 3) 是最可行但也最复杂的。你会推荐哪一个?sql server 中是否有任何技巧来处理这种情况?还有其他方法吗?

0 投票
1 回答
256 浏览

asp.net - Asp.Net 中的网络场错误

最近,当我尝试在我的网站上执行任何操作时,我收到一条错误消息。它只是随机发生(没有特定页面)。

错误如下:

“/”应用程序中的服务器错误。

viewstat MAC 的验证失败。如果此应用程序由 Web 场或集群托管,请确保配置指定相同的验证密钥和验证算法。自动生成不能在集群中使用。”

我需要你的帮助来解决这个问题。

0 投票
1 回答
584 浏览

asp.net - Web 场环境中 ASP.NET 网站的数据缓存

我做了一些搜索,但没有找到具体的答案。无论如何,我想知道大多数基于 ASP.NET 的中型网站如何缓存数据,以便在网络场环境中运行时,它们不必总是在不同页面上查找相同数据的数据库。我知道您可以使用 sql server 缓存,但对我来说,这违背了缓存的全部目的。如果我想使用专用服务器来共享缓存(甚至可能的会话数据),大多数站点为此使用什么?当涉及到实现时,我已经完成了搜索并得到了很多“猜测”,但是考虑到那里有这么多的 ASP.NET 网站,真的很难相信没有一些标准的方法可以做到这一点。

我知道 AppFabric 似乎可以解决问题,但只能在 Windows server 2008+ 上运行,我们目前使用的是 2003。此外,我已经检查了 NCache,但它似乎有点贵。

有没有人实施过适合他们的解决方案?当 1000 多个用户同时访问您的网站时,数据库查找可能会非常缓慢。

提前致谢!

0 投票
1 回答
324 浏览

.net - DotNetOpenAuth 内存存储对于具有粘性会话的负载均衡器的 Web 场是否足够?

我正在将 DoNetOpenAuth 作为网络场环境中的依赖方实施。对于具有粘性会话的环境,默认的内存存储是否足够?我读过几篇文章暗示它确实可以在这里这里工作,但我没有足够的负载平衡和 OpenID 知识来确定。

我知道这可能并不理想,我应该以“哑”模式运行或实现自己的商店。

谢谢,

0 投票
2 回答
423 浏览

linq-to-sql - Web 场中的 ASP.NET MVC2 - 页面加载速度慢,流量大

我们有一个用 MVC2 + Linq2SQL + MS SQL SERVER 2008 编写的 Web 应用程序,托管在 Web 场上。几乎像 stackoverflow.com

我们有 4 x IIS7 + 1 SQL SERVER 2008 负载平衡与 MS NLB

静态内容由外部缓存提供商 Akamai 缓存,可减少 86% 的请求。

每个 Web 服务器都有 32 GB 的 RAM 和 4 个四核 CPU,因此前端有 64 个内核。

我们将会话状态保存在表中。

它适用于中等流量(页面加载 = 0.2 秒),但该公司制作电视广告,在这些广告期间,流量在 20-30 秒内达到 20,000 名用户。

在这一刻,页面减慢到 8 - 10 秒。但是,CPU 和内存的使用率在任何机器上都没有达到 40%。

数据中心的带宽没有达到其限制的一半。

缓慢的页面仅从 1-2 个表中从最多 10 条记录的简单 SELECT 生成数据。

显然某处存在瓶颈并试图找出哪里。

有人对我在哪里寻找问题有任何建议吗?

0 投票
1 回答
931 浏览

.net - 使用 WIF 在 .NET Web Farm 中为多个电子商务网站实施 SSO?

我有一个我认为相当复杂的问题,所以我会尽力在这里表达出来。

我正在寻找单点登录 (SSO) 解决方案。我知道那里有许多选项,但是当我添加他们需要满足的标准时,我已经排除了其中的大部分。以下是标准:

1.) SSO 必须添加到现有的“系统”中。
2.) 现有的“系统”由“X”个网站组成。
3.) 所有“x”网站都是电子商务。
4.) 这些网站都归 Y 公司所有,其 95% 的系统是内部构建的。
5.) “X”个网站中的每一个都在同一个网络农场中。
6.) 所有网站都共享以下组件:

  • DAL(数据访问层)
  • 数据库(购物车、订单、用户、库存等...)
  • 身份验证(WebForms 和 MVC 中的表单身份验证)。

7.) 为了使当前环境正常工作,机器密钥已经在负载平衡服务器之间同步(并且已经同步了一段时间)。
8.) 由于流量 非常大,需要高可用性和稳定性。

所有这些标准都使我走上了 WIF 和自定义 STS 的道路,以便与我们现有的会员身份验证服务一起使用。OpenID 和其他开源解决方案似乎都倾向于跨公司的互操作性;这是不需要或不需要的。理想的解决方案将是 100% 内部的,并允许用户登录网站“1”,做他们想做的任何事情,然后转到网站“2”(也托管在负载均衡器后面,甚至可能在同一个网站上) Web 服务器,因为用户是网站“1”)并且已经登录。

这是我看过的替代方法列表以及排除它们的相应原因(或者我应该重新考虑其中一些替代方法吗?)。

  • OpenID:这被排除了有几个原因,主要是因为我的组织正在寻找“内部” SSO,并且不希望与外部网站集成或与外部网站一起使用的 ID 系统。
  • CAS:在大多数情况下,这似乎也是一个不错的选择。最终它被排除了,因为它使用的技术(Java、Apache、Maven 等)需要额外的努力和金钱来理解、实施、支持和扩展(主要是 .NET 商店)。
  • OAuth:似乎它更倾向于通过 Web 服务公开受保护的数据。完全自定义 ( http://www.codeproject.com/KB/aspnet/CrossDomainSSOModel.aspx ):完全自定义的方法可能执行时间太长,并且此方法更需要考虑安全性。
  • DotNetOpenAuth:依赖/基于 OpenID。

所以问题是:考虑到负载均衡器和跨网站已经共享的用户帐户数据,WIF 会在我们现有的环境中工作,还是有更好的方法?

如果您需要任何澄清,请告诉我。

编辑:

只是为了澄清我想要实现的目标(或者考虑到我所做的研究认为我想要实现的目标)是:

当前设置(JPEG 托管在 Dropbox 上)
所需设置(JPEG 托管在 Dropbox 上)

0 投票
2 回答
10195 浏览

cpanel - microsoft windows server 中的 Cpanel/WHM 解决方案

Microsoft 是否提供类似于 linux 中的 Cpanel/Whm 的 Web 托管解决方案?我真正想要的是构建一个强大的服务器,我为我的 org 开发人员提供一个类似 cpanel 的工具来管理他们的站点,而不是给他们 vps 或直接访问服务器。

0 投票
2 回答
4480 浏览

azure - Azure/web-farm 就绪 SecurityTokenCache

我们的网站使用 ADFS 进行身份验证。为了减少每个请求的 cookie 有效负载,我们打开了 IsSessionMode(请参阅Your fedauth cookies on a diet)。

为了在负载平衡环境中正常工作,我们需要做的最后一件事是实现一个场就绪的 SecurityTokenCache。实现看起来很简单,我主要想知道在处理 SecurityTokenCacheKey 以及 TryGetAllEntries 和 TryRemoveAllEntries 方法时是否应该考虑任何陷阱(SecurityTokenCacheKey 具有 Equals 和 GetHashCode 方法的自定义实现)。

有没有人有这方面的例子?我们计划使用 AppFabric 作为后备存储,但使用任何持久存储的示例都会有所帮助 - 数据库表、Azure 表存储等。

以下是我搜索过的一些地方:

  • Hervey Wilson 的 PDC09 会话中,他使用了 DatabaseSecurityTokenCache。我无法找到他的会话的示例代码。
  • 在 Vittorio Bertocci 的优秀著作“Programming Windows Identity Foundation”的第 192 页上,他提到将 Azure 就绪的 SecurityTokenCache 的示例实现上传到该书的网站。我也找不到这个样本。

谢谢!

京东

2012 年3 月 16 日更新 Vittorio 的博客链接到使用新的 .net 4.5 内容的示例:

ClaimsAwareWebFarm 这个示例是对我们从你们中的许多人那里得到的反馈的回答:您想要一个显示农场就绪会话缓存(而不是 tokenreplycache)的示例,以便您可以通过引用使用会话而不是交换大 cookie;你要求一种更简单的方法来保护农场中的 cookie。

0 投票
1 回答
1025 浏览

asp.net - 使静态资源的浏览器缓存失效

我正在缓存静态资源。通常,当脚本或样式发生更改时,它会给人们带来一段时间的问题,直到他们的浏览器决定是时候使我们的文件缓存无效了。

我希望通过在所有脚本和样式标签的末尾插入一个值来强制浏览器向服务器发送实际请求来解决这个问题。这个值应该在多个服务器之间保持不变,直到发出命令来更改它。如何跨多个服务器生成/更改此值?