标签: lamp

选择 AMD 处理器而不是 Intel 时的注意事项

我在一家拥有大量传统 LAMP 网络应用程序的公司工作,我们正在尝试将硬件从约 250 台物理服务器升级到约 40 台带有虚拟化的新服务器。我们收到了供应商的两个报价——一个是建议使用 Intel 处理器,另一个是 AMD。

我喜欢 AMD 的高核心数的一件事是,我们将能够将核心专用于 VM,这意味着由于尖峰而导致应用程序相互干扰的可能性较低,这在一定程度上更多对我来说比最佳性能更重要。

我想到的其他考虑因素是:

  • 功耗可能不同(在我们的案例中不是问题。)
  • 将不支持像CRC32 (SSE 4.2)这样的 CPU 指令(编辑:MySQL 5.6 似乎支持 SSE4.2。不确定 Apache)
  • MySQL 在 ~16/~32 个内核后无法完美扩展(我愿意接受这种权衡。)

我还缺少哪些其他考虑因素?

(版主注意:我知道这个线程- 我认为这个问题略有不同。)


编辑:假设任务异常并行(网络服务器),并且我不关心数据库服务器不是如此并行。

virtualization lamp kvm-virtualization

13
推荐指数
1
解决办法
4816
查看次数

改进我们的部署策略

我们有一个在我们公司开发的电子商务应用程序。它是一个相当标准的 LAMP 应用程序,我们已经断断续续地开发了大约 3 年。我们在测试域上开发应用程序,在这里我们添加新功能并修复错误等。我们的错误跟踪和功能开发都在托管的颠覆解决方案 (unfuddle.com) 中进行管理。在报告错误时,我们会在测试域上进行这些修复,然后在我们对错误已修复感到满意时将更改提交到 svn。我们遵循相同的程序添加新功能。

值得指出的是,我们的系统和应用程序在我们的服务器上的总体架构。每次开发新功能时,我们都会将此更新推广到使用我们的应用程序(始终是我们控制的服务器)的所有站点。使用我们系统的每个站点在 95% 的代码库中基本上都使用完全相同的文件。我们在每个站点中有几个文件夹,其中包含为该站点定制的文件 - css 文件/图像等。除此之外,每个站点之间的差异由每个站点数据库中的各种配置设置定义。

这将进入实际部署本身。当我们准备好推出某种更新时,我们在测试站点所在的服务器上运行一个命令。这将执行复制命令 (cp -fru /testsite/ /othersite/) 并通过每个虚拟主机强制根据修改日期更新文件。我们托管的每个附加服务器都有一个虚拟主机,我们将生产代码库同步到该虚拟主机,然后我们在该服务器上的所有站点上重复复制过程。在此过程中,我们移出我们不想被覆盖的文件,并在复制完成后将它们移回。我们的 rollout 脚本执行许多其他功能,例如应用 SQL 命令来更改每个数据库、添加字段/新表等。

我们越来越担心我们的流程不够稳定,不具备容错能力,也有点暴力方法。我们也意识到我们没有充分利用 subversion,因为我们有一个立场,即开发新功能会阻止我们推出重要的错误修复,因为我们没有使用分支或标签。我们在我们的服务器上有如此多的文件复制似乎也是错误的。我们也无法轻松地对我们刚刚推出的内容执行回滚。我们确实在每次推出之前执行差异,以便我们可以获得将要更改的文件列表,以便我们知道之后更改了什么,但回滚过程仍然存在问题。就数据库而言,我已经开始将 dbdeploy 作为一种潜在的解决方案。不过,我们真正想要的是关于如何改进文件管理和部署的一般指导。理想情况下,我们希望文件管理与我们的存储库更紧密地联系在一起,因此推出/回滚将更多地与 svn 相关联。类似于使用 export 命令来确保站点文件与 repo 文件相同。如果解决方案也可以停止我们服务器周围的文件复制,那也很好。

忽略我们目前的方法,听听其他人如何解决同样的问题会非常好。

总结...

  • 使跨多个服务器的文件与 svn 保持同步的最佳方法是什么?
  • 我们应该如何防止文件复制?符号链接/其他东西?
  • 我们应该如何构建我们的 repo 以便我们可以开发新功能并修复旧功能?
  • 我们应该如何触发推出/回滚?

提前致谢

编辑:

我最近阅读了很多关于使用PhingCapistrano执行此类任务的好文章。任何人都可以提供更多关于他们的信息以及他们对这种任务的表现如何?

php deployment svn lamp web-applications

12
推荐指数
1
解决办法
972
查看次数

LAMP 服务器性能提示

可以向运行 LAMP 服务器的人提供哪些性能提示?

在某些特定于发行版的情况下,我的目标是 Debian。

lamp

11
推荐指数
1
解决办法
2784
查看次数

.htaccess RewriteCond for REMOTE_ADDR 而在负载均衡器后面?

我在负载平衡器后面有一个 Web 服务器。

我需要向我的 .htaccess 添加条件重定向,以便在我们将站点脱机进行维护时显示维护页面。这部分很简单:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.php [R=302,L]
Run Code Online (Sandbox Code Playgroud)

但是我想添加一个条件,如果访问者的 IP 地址是我自己的,它不会将我重定向到维护页面,并且我将能够像在线一样查看和测试该站点。这部分通常也很简单:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111
RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.php [R=302,L]
Run Code Online (Sandbox Code Playgroud)

但是,因为我的 Web 服务器在负载均衡器后面,所以REMOTE_ADDR被解析为负载均衡服务器的内部 IP 地址。

如何更改它以查找转发的 IP 地址?我知道在 PHP 中你可以$_SERVER['HTTP_X_FORWARDED_FOR']用来获取转发的 IP 地址。我已经尝试了一些东西,.htaccess但没有运气:

%{X_FORWARDED_FOR}
%{HTTP:X_FORWARDED_FOR}
%{HTTP_X_FORWARDED_FOR}
Run Code Online (Sandbox Code Playgroud)

解决方案

我得到了以下工作:

%{HTTP:X-FORWARDED-FOR}
Run Code Online (Sandbox Code Playgroud)

linux php lamp .htaccess apache-2.2

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

如何使用 NameVirtualHosts 在 LAMP 服务器上设置每个站点的 php.ini 文件?

我有一个LAMP服务器,使用NameVirtualHosts为许多不同的网站提供服务。

直到最近,拥有一个全局 php.ini文件还不错,但最近我们的一位开发人员要求在 php.ini 中进行一些我不想全局设置的设置。

我很确定我听说你可以在每个站点的基础上设置 php.ini 文件,但不知道如何去做。

有人可以指出我如何实现这一目标的正确方向吗?

php configuration lamp apache-2.2

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

用于生产用途的安全 LAMP 服务器

保护 Linux、Apache、MySQL、PHP 服务器(甚至 Perl)以供生产使用的程序是什么?

除了为 Linux 设置 MySQL 密码和 root 密码之外,还应该采取哪些其他(可能不那么明显)的步骤?

另外我可以采取哪些步骤,如果我会变得更加偏执,那通常可能没有必要?

这是用于基本的单站点使用,但必须是安全的。

mysql linux php lamp apache-2.2

10
推荐指数
1
解决办法
5138
查看次数

Linode 发行版(如何选择?)64 位?

我已经飞跃到 Linode (360MB) 并希望获得一些关于选择哪个发行版的反馈。我将运行 LAMP(P 为 PHP)。

我主要对安全性、性能、稳定性和未来的补丁感到好奇。
我应该使用 64 位版本的操作系统还是有缺点?

选择...

Arch Linux 2009.02
Arch Linux 2009.02 64bit
CentOS 5.3
CentOS 5.3 64bit
Debian 5.0
Debian 5.0 64bit
Fedora 11
Gentoo 2008.0
Gentoo 2008.0 64bit
OpenSUSE 11.0
Slackware 12.2
Ubuntu 8.04 LTS
Ubuntu 8.04 LTS 64bit
Ubuntu 9.10
Ubuntu 9.10 64bit
Run Code Online (Sandbox Code Playgroud)

干杯

linux vps lamp linode

9
推荐指数
1
解决办法
3165
查看次数

绝对初学者的 VPS 管理

我有一个我想建立的新网站,这是我作为程序员希望存在的。虽然这个站点不可能达到 StackOverflow 的成功水平,但我确实希望它具有广泛的吸引力并取得相当大的成功 - 无论如何,我很乐观。

我将从共享主机开始,可能会坚持使用托管我的博客的公司,因为我对他们非常了解,但我认为共享托管不是一个好的长期解决方案。

因此,我一直在查看各种 VPS 提供商,目前主要是 Slicehost 和 Linode,以了解它们作为“下一阶段”提供商的潜力。问题是我觉得我会完全脱离我的 VPS 元素。我对 Linux 的经验有限(我在我的笔记本电脑上尝试过几次,但总是遇到让我放弃它的问题 - 通常是无线问题),虽然我很确定我能掌握基础知识设置,我担心我会让事情变得非常不安全,或者我无法处理维护问题。

显然,我的想法可能完全失败,但如果我到了 VPS 成为必需品的阶段,我宁愿不着急。

那么,是否有任何好的教程/(电子)书籍/文章描述如何了解您的 VPS,或者我应该关注的任何其他问题。该站点很可能是一个“经典”的 LAMP 堆栈,尽管我可能会决定稍后在需要(或真正想要)时将其换掉。

我在这方面的绝对首要任务安全,因此这篇文章。鉴于在线资源 - 最显着的是 Slicehost 和 Linodes 教程部分,我几乎没有怀疑,我可以一起破解一个可行的解决方案,但我需要知道这样做不会让关键漏洞处于开放状态。

一盎司的预防等。

谢谢!


编辑:

过去几天我也在 Hacker News 和 Reddit 上问过这个问题,所以这些讨论的链接可能有用:

security vps lamp

9
推荐指数
2
解决办法
2920
查看次数

跨水平扩展的 Web 服务器共享文件上传目录的最佳方式

我目前正在尝试为基于 drupal 的 Web 应用程序指定一个水平可扩展的集群,它看起来像下面的彩色图表:

负载平衡器实现粘性会话,因此用户在分配了要使用的服务器后保持状态。

每个应用服务器都有以下内容:

  • 在前面清漆
  • 中间的 drupal 6 在灯组上运行
  • 内存缓存在后面

两台 mysql 数据库服务器在一个共享 IP 上,它们在一个带有 DRBD 和心跳的 HA 集群中,因此丢失一个不会导致整个平台瘫痪。

在此处输入图片说明

有几件事我不确定,我会很感激你的意见:

文件存储应该如何横向扩展?

我正在考虑使用 NFS 在每个应用程序服务器上挂载一个共享文件目录,因此一次上传的文件在所有应用程序服务器上都可用。我在考虑 NFS,因为它已经存在了很长时间,而且我没有使用 MogileFS 或 GlusterFS 的经验,而且我们以前使用过它,所以我们更熟悉它。

是否有任何指导方针可以用来确定以这种方式通过 NFS 共享目录是明智的?

这里的共享文件存储应该如何提供HA?

这里的一个问题是 NFS 服务器是单点故障。

我们已经在 Mysql 服务器上使用 Heartbeat 和 DRBD,我更愿意保持堆栈中涉及的技术数量尽可能少 - 如果我对文件使用相同的 HA 策略会有什么陷阱服务器也是?

另一种方法

这适用于面向内部的站点,当内部计划启动时,用户数量有限,偶尔会在短时间内非常密集地使用该站点。所以这不需要像某些初创公司那样无限扩展。

鉴于

  • 我们可以预期的流量有上限
  • 将 HA 添加到文件服务器,并设计一个设置以像这样水平扩展会带来相当大的复杂性

我还在考虑让两个 Web 服务器更强大,以便它们可以处理它们之间的峰值负载,并在 cron 作业中设置一致或在两者之间进行 rsync,以便:

  • 他们的文件仍然保持同步(粘性会话将用户保持在他们上传文件的同一服务器上)
  • 丢失一个意味着该站点仍在运行。

这听起来像是绕过任何可能的 NFS/DRBD HA 复杂性问题的可能方法吗?

谢谢,

C

nfs scaling lamp

9
推荐指数
1
解决办法
2198
查看次数

Apache“httpd”进程,利用我所有的服务器内存

我的小型 ec2 实例有 1.7 GB 内存,运行基于 CentOS 的 Amazon AMI,在 Apache 使用过多内存时存在问题。如果你看一下截图,内存使用率将在 90-100%,直到我重新启动 httpd 服务,它会重新开始,增加到 90+%。

在此处输入图片说明

我真的很感激有关如何定位问题的一些帮助。这可能是“正常”的 apache 行为,以利用所有可用内存吗?或者是否有我必须追捕的可能泄漏。目前,我对可能发生的事情感到有些困惑。

我们正在使用 Apache MPM prefork,没有 sql 或任何类似的东西——只有 apache。网站在这里

memory httpd lamp memory-usage apache-2.2

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