标签: best-practices

为什么要使用 www.domain 和 mail.domain?

我看到邮件和 Web 服务器的默认主机名分别设置为mail.domain.tldwww.domain.tld。为什么是这样?当您从单台服务器迁移到多台服务器时,它有帮助吗?

我一直domain.tld对 VPS 上的邮件和 Web 服务器使用普通的(对于尝试“www.”的任何人都有重定向规则)。

hostname domain-name best-practices

5
推荐指数
1
解决办法
291
查看次数

扩展我的 Web 应用程序以应对大量用户的最佳策略是什么?

我想就如何制定扩展我的 Web 应用程序的策略获得一些建议/最佳实践。我在这里胡说八道并展示我有限的知识,但想填补我的知识空白。自己尽可能多地学习这方面的知识很诱人,但意识到我需要寻求一些外部帮助,因此作为一个一般性问题,最好知道最容易外包的事情是什么。

我的背景 - 我是一名开发人员,主要从事用户界面的开发工作,并一直在使用 Flash 和 PHP 开发应用程序的功能,该功能可以让用户上传图像和视频以进行在线共享。

系统架构如下——

  1. 一个单一的网络服务器,它也充当数据库服务器 (MySQL)。该服务器位于受信任且可靠的托管公司的托管托管包中。网络服务器提供 PHP 页面和 Flash SWF,它们是主要的 UI 组件
  2. Amazon S3 存储桶,用于存储用户的图像、视频和音频文件。
  3. 用户界面组件要么是 PHP 页面,要么是 Flash SWF,例如图像和视频是通过 Flash swfs 查看的,Flash swfs 通过 AMFPHP 服务查询数据库以获取要加载的图像和视频文件的 URL。然后从 Amazon S3 存储桶接收这些数据。另一个 FLash SWF 处理上传和 POSTS 文件到在 Amazon Cloud 上的 EC2 实例上运行的 PHP 脚本。
  4. 用于管理图像、视频和音频上传的上传服务器。这是一个运行在 Elastic Load Balancer 后面的 Amazon EC2 实例,当它看到 CPU 容量达到 80% 时会添加更多实例。
  5. 我们还使用也在 Amazon EC2 上运行的第三方服务来对视频文件进行转码。

所以在很大程度上,我认为事情已经设置好了,可以扩大规模。但我没有如何扩展或管理高流量 Web 应用程序的经验,因此将依赖我们的 Web 服务器托管公司来管理 Web/应用程序服务器和数据库服务器的可扩展配置的设置。

硬件/架构扩展-

据我了解,这里的第一步是将 Web 服务器和数据库分开并让数据库服务器独立运行,将 Web 服务器放在负载均衡器后面,并最终为数据库服务器设置主/从配置。我应该要求我的网络托管公司做什么?这样做有什么问题?对我的 AMFPHP …

database scalability web-server web-applications best-practices

5
推荐指数
1
解决办法
5178
查看次数

提供大量文件的最佳实践

目前我们有一台 Windows Server 2008 R2 作为域控制器和文件服务器。

我们正在向 4 个 IIS 服务器提供大约 600 万个 JPG,然后再提供给 Web 用户。

问题是我们每天都会在服务器上收到内存警报。我们当前的服务器从单个驱动器 (LUN) 提供这些文件。光盘上的文件数量也有问题。随着我们继续添加更多图像,主文件表将变得太大。

我们目前的计划是:

  • 将文件服务器移到单独的 VM
  • 添加 4 或 5 个单独的驱动器 (LUN) 来提供这些文件
  • 到今年年底将增加到大约 1500 万张图片(比我们目前的数字多一倍多)

我的问题是:

  1. 提供文件的最佳实践是什么?
  2. 我们可以迁移到具有 4 个或 5 个驱动器 (LUN) 的单个服务器,还是应该迁移到每个具有 3 个驱动器的 2 个文件服务器?

file-server windows-server-2008-r2 best-practices

5
推荐指数
1
解决办法
291
查看次数

如何通过 Microsoft.Exchange.Rpc.ClientAccess.Service.exe 调查持续的高 CPU 使用率?

我们阵列中的一台 CAS 服务器使用了其 4 个 CPU 中的近 90%。其余的 CAS 服务器占 30%。

我应该如何调查导致这种增加的原因?

下图为:

  • 六 (6) 台 CAS 服务器以 RPC/HTTPS(Outlook 随处可见)模式为 3,000 名用户提供服务。
  • 视窗 2008 R2
  • 最近升级到 Exchange 2010 SP1 RU6(RU3 上的行为相同)
  • 每个 CAS 服务器有四 (4) 个虚拟 CPU

兴趣点

  • 由于我们要求最终用户针对不同的 URL 配置 Activesync,因此我们在负载均衡器上设置了专用 VIP,并隔离了底部的两个 CAS 服务器。这样做很容易……我们更改了公共 DNS 条目以促进隔离。(我希望 MSFT 最佳实践鼓励 Activesync 部署的独立 URL)
  • 黑色的高 CPU 来自 ActiveSync。
  • 绿色尖峰来自 RPC 客户端访问服务。

在此处输入图片说明

我在服务器上运行了 MSFT 的DebugDiag,但不知道这是否是正确的工具,或者如何处理一些更高级的结果。任何提示表示赞赏。

debugging perfmon exchange-2010 cpu-usage best-practices

5
推荐指数
1
解决办法
2万
查看次数

备份 DMZ 上的服务器

我们有一个有点静态的 Web 应用程序,其中包含大量媒体文件,该应用程序在 DMZ 上的 2008 R2 非域服务器上运行。我需要备份服务器上的媒体文件。受信任网络上服务器的当前备份机制是 BackupExec 代理。

备份 DMZ 服务器的最佳做法是什么?将 BackupExec 客户端推送到它,并让它通过防火墙连接回受信任网络上的 BE 服务器,我真的很不舒服......

backup dmz best-practices

5
推荐指数
1
解决办法
1250
查看次数

使用不同计划在 RHEL 上轮换 syslog 日志的最佳实践?

操作系统:运行 RHEL 5.6。

情况:我需要按照与其余 syslog 日志不同的时间表轮换 /var/log/messagees。

默认情况下,syslog 日志根据 /etc/logrotate.conf 和 /etc/logrotate.d/syslog 配置文件每周轮换一次。

如果您查看 /etc/logrotate.d/syslog,您会发现所有日志都有一个 logrotate 配置块。如果我希望 /var/log/messages 以不同的时间表轮换,我需要为它创建一个单独的配置块。这将导致重新启动 syslogd 两次(基于复制现有配置)。

问题:有没有办法按照与其他 syslog 日志不同的计划轮换 /var/log/messages,而不必将 HUP 发送到 syslogd 两次?或者这甚至重要吗?这里的最佳做法是什么?

linux redhat syslog best-practices

5
推荐指数
1
解决办法
4333
查看次数

如果网站受到主动攻击,应该遵循什么协议?

当您刚刚检测到您的网站目前正受到试图渗透您网站的黑客攻击时,我的问题中没有包括拒绝服务,您会怎么做?是否有可遵循的最佳实践指南?

我找到了很多关于你被黑客攻击后做什么的帖子,但是当你受到攻击时你会做什么似乎并不清楚。

我主要谈论 IIS 和 ASP.net 站点,但问题与所有面向 Internet 的站点相关。

假设该站点位于防火墙后面,并且所有请求和信息都已记录。

我的想法是:

  1. 检查日志,获取客户端 IP 并在防火墙上阻止它们
  2. 如果这没有减慢或阻止攻击者的速度,即与多个攻击者的协同攻击,请暂时将站点和服务器脱机

是否有任何其他建议的操作或最佳实践?

security hacking best-practices

5
推荐指数
1
解决办法
182
查看次数

AD Server 2008 和 2008 R2 DCs W32Time 设置投诉的 BPA

我一直在经历 BPA 对我们的 DC 提出的一些警告,以确保一切都应该如此。

一切都很顺利,直到我收到以下警告:

The value of MaxNegPhaseCorrection on the domain controller ********* should be equal to 48 hours
Run Code Online (Sandbox Code Playgroud)

和:

The value of MaxPosPhaseCorrection on the domain controller ********* should be equal to 48 hours
Run Code Online (Sandbox Code Playgroud)

我查看了technet上的文章,它指出下面的注册表设置

HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection 
Run Code Online (Sandbox Code Playgroud)

应该等于 172800。

据我所见,我检查过的每个 DC 都将此注册表设置设置为 172800。BPA 是否抱怨它不是通过 GPO 应用的?或者这里还有什么我应该注意的问题吗?

windows-server-2008 active-directory w32time windows-server-2008-r2 best-practices

5
推荐指数
1
解决办法
809
查看次数

将包含大量文件的目录排序为子目录的名称是什么?

使包含大量文件的目录变得可管理的一种方法是将文件分类到以文件名中的渐进字符命名的子目录中。

例如:

- a8debcdcf0d2302ccde5a43bb1fb385e81098342.jpg
- 91ff48de8cfc6468bdc2115cf87cfb6547eee713.jpg
- 99d002e2065cdf02bd6d04bf29a8230564719b76.jpg
...

上面的文件被分类到子目录中,类似于:

- 一种/
  - 8/
    - a8debcdcf0d2302ccde5a43bb1fb385e81098342.jpg
- 9/
  - 1/
    - 91ff48de8cfc6468bdc2115cf87cfb6547eee713.jpg
  - 9/
    - 99d002e2065cdf02bd6d04bf29a8230564719b76.jpg

此方法有多种变体,例如使用不同数量的字符来命名子目录或使用散列或其他算法来确定每个文件的路径。

这种组织文件的方法有正式名称吗?

directory best-practices

5
推荐指数
1
解决办法
470
查看次数

使用 git 管理 puppet 模块

我有一个在 Debian 7 上运行的 puppet/foreman 服务器来管理我的系统。我使用的是 puppet and foreman 1.6.0 的社区版本 3.7。我使用目录环境。

目前,我对自己编写的模块使用了相当复杂的工作流程,在我的开发环境中创建它们,这是颠覆控制的,然后将它们导出到外部目录,构建它们的木偶模块(木偶模块构建...)和在生产中安装它。我考虑过使用 subversion 将它们分支/标记到生产中,但由于我不记得的原因,当时排除了这一点。

同时我学习了一点 git 并且宁愿使用 git 而不是 subversion。我的问题是现在是否有最佳实践可以这样做?我可以想象至少两种方法都有其优缺点。一种方法是将环境开发置于版本控制之下,然后将其克隆/分支到生产环境中。其次是制作每个模块的 git repo 并将它们克隆到环境中。

正如我所说,我是 git 的新手,所以我对它的优点和缺点没有真正的了解。此外,我只使用木偶和工头大约 8 个月。

干杯,克里斯托夫

linux git puppet best-practices foreman

5
推荐指数
1
解决办法
1067
查看次数