我有一堆重写规则,我必须将它们从 apache 移植到 nginx。
这是一个相当痛苦的过程,因为我无法查看我的重写规则和“如果”条件是否按我希望的那样工作。
Apache 确实对其重写模块进行了调试。我可以为 nginx 做什么?
这是一个关于使用 *AMPP 堆栈的规范问题。
我最近和一些有经验的人交谈,他们建议我不要使用 WAMP 堆栈,而是分别安装 apache、mysql 和 php。
不过,我不明白他们为什么提出这个建议,所以有人可以告诉我吗?
WAMP 有什么特别的缺点,还是单独安装所有这些有什么特别的好处?
既然 WAMP 栈本身是由 apache、mysql 和 php 组成的,那么使用 WAMP 栈和单独安装它们有什么区别呢?
我们正在从 1 个网络服务器设置转移到两个网络服务器设置,我需要开始在两台负载平衡机器之间共享 PHP 会话。我们已经安装(并启动)了memcached,所以我很高兴我可以通过只更改文件中的3 行(session.save_handler和session.save_path)来完成新服务器之间的共享会话:php.ini
我替换了:
session.save_handler = files
Run Code Online (Sandbox Code Playgroud)
和:
session.save_handler = memcache
Run Code Online (Sandbox Code Playgroud)
然后在主 Web 服务器上,我将session.save_path
指向 localhost:
session.save_path="tcp://localhost:11211"
Run Code Online (Sandbox Code Playgroud)
在从属网络服务器上,我将 设置session.save_path
为指向主服务器:
session.save_path="tcp://192.168.0.1:11211"
Run Code Online (Sandbox Code Playgroud)
工作完成,我测试了它并且它有效。但...
显然,使用 memcache 意味着会话在 RAM 中,如果机器重新启动或 memcache 守护进程崩溃,会话将会丢失 - 我对此有点担心,但我更担心两个网络服务器之间的网络流量(尤其是当我们扩大规模),因为每当有人负载平衡到从网络服务器时,他们的会话将从主网络服务器通过网络获取。我想知道是否可以定义两个,save_paths
以便机器在使用网络之前查看自己的会话存储。例如:
掌握:
session.save_path="tcp://localhost:11211, tcp://192.168.0.2:11211"
Run Code Online (Sandbox Code Playgroud)
奴隶:
session.save_path="tcp://localhost:11211, tcp://192.168.0.1:11211"
Run Code Online (Sandbox Code Playgroud)
这会成功地跨服务器共享会话并帮助提高性能吗?即节省 50% 的时间网络流量。还是这种技术仅适用于故障转移(例如,当一个内存缓存守护进程无法访问时)?
注意:我并不是特别询问内存缓存复制 - 更多关于 PHP 内存缓存客户端是否可以在池中的每个内存缓存守护进程内达到峰值,如果找到一个会话,则返回一个会话,如果没有找到,则只创建一个新会话在所有商店。在我写这篇文章的时候,我想我对 PHP 的要求有点高,哈哈...
假设:没有粘性会话、循环负载平衡、LAMP 服务器。
我的一个 LAMP 服务器最近被某种寻找漏洞利用的脚本机器人关闭了。从它的外观来看,它每秒发出如此多的请求,它使服务器上的 RAM 过载并使我的整个站点停机一个小时。那个“攻击”都来自一个单一的 IP 地址。
那么如何在短时间内自动暂时阻止一个 IP 地址在我的 LAMP 服务器上造成过多点击?什么是这项工作的最佳工具,我应该在操作系统级别还是通过 PHP 解决这个问题?
有没有人对我需要使用 apache 和 wordpress 和 subversion 以及 MySQL 实例有多少 VPS ram(无突发)的大概数字?
Apache 将托管几个站点和 SSL。MySQL 将只有 Wordpress 数据库。这些网站流量低,每天点击量不到 1000 次。
我的 mysql 密码 = '' 我尝试登录 PhpMyAdmin(在 Ubuntu 10.04 灯上)并收到错误: 配置禁止无密码登录(请参阅 AllowNoPassword) 我应该怎么做才能在没有设置密码的情况下进入 phpMyAdmin?谢谢
在我们的 LAN 上,我在 DNS 服务器中设置了几个“假”TLD,目的是将它们用于基于 Apache 名称的虚拟主机。我想将其与 Ubuntu 10.04 LAMP 服务器上的大规模虚拟托管(即 VirtualDocumentRoot)结合起来。
但是,我无法让它选择正确的虚拟主机!
以下是 Apache 配置的摘要:
NameVirtualHost 10.10.0.205
<VirtualHost 10.10.0.205>
ServerName *.test
VirtualDocumentRoot /var/www/%-3.0.%-2/test/%1/
CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>
<VirtualHost 10.10.0.205>
ServerName *.dev
VirtualDocumentRoot /var/www/%-3.0.%-2/dev/%1/
CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
主机名(例如www.domain.com.dev)正确解析为 10.10.0.205,但始终选择最匹配的顶部虚拟主机,而不是底部虚拟主机。
我的印象是 Apache 会首先尝试匹配 ServerName,然后再默认为给定 IP 的顶级虚拟主机。我究竟做错了什么?或者这是不可能的,我必须为每个 TLD 使用另一个 IP?
apachectl -S 输出(修剪):
10.10.0.205:* is a NameVirtualHost
default server *.test
port * namevhost *.test
port * namevhost *.dev
Run Code Online (Sandbox Code Playgroud) 这是一个基本问题 - 在电影“社交网络”中,有几个场景是年轻的 Facebook 员工正在实时观看 PHP/Apache 服务器登录他们的 TERMINAL。
我熟悉如何在 RUBY/RoR 环境中执行此操作 - 但是使用标准 LAMP Apache/PHP 环境,如何实时主动监控服务器的操作?我猜在终端中有一种简单的方法可以做到这一点。
我在一家拥有大量传统 LAMP 网络应用程序的公司工作,我们正在尝试将硬件从约 250 台物理服务器升级到约 40 台带有虚拟化的新服务器。我们收到了供应商的两个报价——一个是建议使用 Intel 处理器,另一个是 AMD。
我喜欢 AMD 的高核心数的一件事是,我们将能够将核心专用于 VM,这意味着由于尖峰而导致应用程序相互干扰的可能性较低,这在一定程度上更多对我来说比最佳性能更重要。
我想到的其他考虑因素是:
我还缺少哪些其他考虑因素?
(版主注意:我知道这个线程- 我认为这个问题略有不同。)
编辑:假设任务异常并行(网络服务器),并且我不关心数据库服务器不是如此并行。
lamp ×10
apache-2.2 ×4
php ×4
linux ×3
ubuntu ×2
ip-blocking ×1
logging ×1
memcached ×1
mod-rewrite ×1
mysql ×1
nginx ×1
performance ×1
scripting ×1
security ×1
terminal ×1
virtualhost ×1
vps ×1
windows ×1