在实时(电子商务)站点上部署新代码的最佳做法是什么?
现在重命名目录时,我已经停止阿帕奇+/-10秒public_html_new到public_html老来public_html_old。在我再次启动 Apache 之前,这会造成短暂的停机时间。
如果使用 Git 将新的 repo 拉到 live 目录,也会出现同样的问题。我可以在站点处于活动状态时拉出 repo 吗?如果我还需要复制数据库呢?
在对实时站点进行 tar(备份目的)压缩期间,我注意到媒体目录中发生了变化。这向我表明文件会定期更改。如果 Apache 在部署期间没有停止,这些更改是否会干扰。
我使用以下配置在 Nginx 上运行 Magento:http : //www.magentocommerce.com/wiki/1_-_installation_and_configuration/configuring_nginx_for_magento。
现在我想将所有 URL 301 不带尾随斜杠到包含尾随斜杠的对应物。例如:/contacts 到 /contacts/。
我已经尝试了几乎所有我能找到的 nginx 指令,但无济于事。例如,nginx-Rewrite URL with Trailing Slash 中指定的指令会导致重定向到 /index.php/。
我应该添加哪个指令以及在哪里添加?
我有一对服务器托管一个流量适中的 Magento 电子商务网站(谷歌分析报告每天 60k 页面浏览量,我认为服务器本身报告了大约 80k)。数据库服务器运行平稳快速,除了偶尔偶尔打嗝外,但 apache 服务器经常发生故障。
我已将 magento 设置为使用推荐的 PHP 缓存 (APC),并将其自己的缓存文件保存在 1.5 gig tmpfs 中(此 tmpfs 经常变得非常满,我有一个脚本运行以在 tmpfs 为超过 80% 已满)。我提供来自亚马逊云前沿的大多数图像。我最近将 nginx 设置为 apache 的反向代理(nginx 也提供静态文件)。我已经尽我所能配置了 apache - keepalives 和 hostnamelookups 都关闭了,prefork 配置如下:
<IfModule prefork.c>
StartServers 50
MinSpareServers 50
MaxSpareServers 100
ServerLimit 512
MaxClients 256
MaxRequestsPerChild 400
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我没有关闭 .htaccess 文件,并且访问日志是打开的。我知道有些模块我可以关闭。我不确定这三个变化中的任何一个会产生什么影响,如果有的话。
apache 服务器是一个 VPS,有 6 gig 的 RAM。截至撰写本文时,服务器正在报告load average: 17.77, 18.27, 49.76,但大约有 2 gig 的可用 RAM。当它变得非常糟糕时,负载会增加到 120+ 并保持在那里 - 重新启动 apache 会使站点重新启动并重新降低负载。
vmstat是(当服务器报告上面的负载时),我认为,显示 CPU …
我必须为 Magento 进行设置。我的限制主要是易于设置和容错/故障转移。此外,成本也是一个问题。我有三个相同的物理服务器来完成工作。每个服务器节点在软件 RAID 1 配置中都有一个 i7 四核、16GB RAM 和 2x3TB HD。每个节点都运行 Ubuntu 12.04。马上。我有一个额外的 IP 地址,可以路由到这些节点中的任何一个。
Magento 商店有最大。1000个产品,其中50%是捆绑产品。我估计最大。10 个用户同时处于活动状态。这使我得出结论,性能不是这里的重中之重。
一个节点 (lb) 将 nginx 作为负载均衡器运行。附加 IP 与域名一起使用并默认路由到此节点。Nginx 将负载平均分配给其他两个节点(shop1、shop2)。Shop1 和 shop2 配置相同:每个服务器运行 Apache2 和 MySQL。Mysqls 配置了主/从复制。
我的故障转移策略:
这是一个明智的策略吗?有没有人用 Magento 做过类似的设置?
另一种方法是使用 drbd 将 MySQL 数据文件存储在 shop1 和 shop2 上。我知道在这种情况下,只有一个节点/MySQL 实例可以处于活动状态,另一个用作热备用。因此,如果 shop1 失败,我会在 shop2 …
我最近将我的 magento 从 1.5 升级到 1.9,当我将某个产品添加到购物篮时,我开始收到此错误:502 Bad Gateway
var/log/文件夹中没有日志条目:

因此,我查看了我的 nginx 错误,并在nginx-errors.log 中发现了以下条目:
2015/04/09 10:58:03 [error] 15208#0: *3 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 46.xxx.xxx.xxx, server: dev.my-domain.co.uk, request: "POST /checkout/cart/add/uenc/aHR0cDovL2Rldi5zYWx2ZW8uY28udWsvdGludGktYmF0aC1wYWludGluZy1zb2FwLTcwbWwuaHRtbD9fX19TSUQ9VQ,,/product/15066/form_key/eYLc3lQ35BSrk6Pa/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fcgi-www-data.sock:", host: "dev.my-domain.co.uk", referrer: "http://dev.my-domain.co.uk/tinti-bath-painting-soap-70ml.html"
2015/04/09 11:04:42 [error] 15208#0: *13 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 46.xxx.xxx.xxx, server: dev.my-domain.co.uk, request: "POST /checkout/cart/add/uenc/aHR0cDovL2Rldi5zYWx2ZW8uY28udWsvdGludGktYmF0aC1wYWludGluZy1zb2FwLTcwbWwuaHRtbD9fX19TSUQ9VQ,,/product/15066/form_key/eYLc3lQ35BSrk6Pa/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fcgi-www-data.sock:", host: "dev.my-domain.co.uk", referrer: …Run Code Online (Sandbox Code Playgroud) 我正在尝试为一个小型 VPS 优化我的 MySQL 配置。VPS 还运行 NGINX/PHP-FPM 和 Magento;所有这些都限制为 250MB 的 RAM。
这是 MySQL Tuner 的输出...
-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.41-3ubuntu12.8
[OK] Operating on 64-bit architecture
-------- Storage Engine Statistics -------------------------------------------
[--] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 1M (Tables: 14)
[--] Data in InnoDB tables: 29M (Tables: 301)
[--] Data in MEMORY tables: 1M (Tables: 17)
[!!] Total fragmented tables: …Run Code Online (Sandbox Code Playgroud) 目前我在运行 Magento 的服务器上遇到了问题,它慢得令人难以置信。
这是一个 VPS,上面有一些 Magento 安装用于开发,所以我是唯一一个使用它们的人。当我在 2 秒后执行 4 个请求时,我在 10 秒内完成。缓慢,但仍在我的耐心范围内。但是,当我执行 4 个“并发”请求时(非常快地连续打开 4 个选项卡),所有四个核心都会达到 100% 并在那里停留一分钟。
这怎么可能?
我知道这里有很多可能性,因此也欢迎任何有关如何使 Apache/PHP 服务器运行得更快的提示。
以前它运行得更快,我也试过 APC,但它一直导致问题(PHP 错误,内存池问题),所以我禁用了它。
顺便说一句,Magento 缓存已关闭,编译也已关闭。我知道这会使 Magento 比平时慢,但我认为任何 Magento 安装的 60 秒响应时间都不正常。
虚拟硬件:
4 核和 4096MB RAM
Swap 从未使用(使用 htop 检查)100GB 磁盘空间,其中 10% 正在使用
软件:
Debian 6 DirectAdmin 和 apache custombuild PHP 5.2.17 (CLI)
如果您需要更多信息,请告诉我如何获取,因为我可能不知道如何获取。我知道如何在 linux 中使用命令行以及很多命令的使用,但是我管理服务器的经验有限。
我需要回收一些磁盘空间,所以我从我的服务器中删除了一个旧的 Magento 数据库。数据库大小约为 16 GB。我很惊讶一旦数据库被删除,它并没有真正释放磁盘空间。
我尝试重新启动 MySQL 服务器,但它仍在占用该空间。
如果重要的话,Magento 数据库会大量使用 innoDB。
我能做些什么来恢复这个磁盘空间吗?
我的服务器每天都在同一时间停机。我发现问题是由于mysql。
我试过显示进程列表;并发现数据库正在进入睡眠模式。我看到 log_url 表中有很多插入,如下所示
mysql> show processlist;
+-------+---------------+-----------+------------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-------+---------------+-----------+------------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+
| 72962 | sonicsense_db | localhost | sonicsense_db | Query | 1 | Sending data | SELECT `log_url`.* FROM `log_url` LIMIT 2381 OFFSET 2992917 |
| 74069 | sonicsense_db | localhost | sonicsense_db | Query | 4 | Updating | UPDATE `cron_schedule` SET `job_code` = 'captcha_delete_expired_images', `status` = 'error', `messag |
| 74073 | …Run Code Online (Sandbox Code Playgroud) 我运行了 Solr 3.6.2 并为 Magento Enterprise 站点的搜索提供支持,并且一切正常,启动时没有错误等。
但是,当尝试访问以下管理页面时:
我收到以下错误:
Problem accessing /solr/admin/stats.jsp. Reason:
PWC6033: Unable to compile class for JSP
PWC6197: An error occurred at line: 41 in the jsp file: /admin/stats.jsp
PWC6199: Generated servlet error:
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files
org.apache.jasper.JasperException: PWC6033: Unable to compile class for JSP
PWC6197: An error occurred at line: 41 in the jsp file: /admin/stats.jsp
PWC6199: Generated servlet error:
The type …Run Code Online (Sandbox Code Playgroud) magento ×10
mysql ×3
nginx ×3
php ×2
apache-2.2 ×1
cache ×1
centos ×1
cpu-usage ×1
drbd ×1
failover ×1
httpd ×1
innodb ×1
java ×1
linux ×1
master-slave ×1
memory-usage ×1
optimization ×1
performance ×1
rewrite ×1
solr ×1
url ×1