WordPress在Azure上运行缓慢。

9
我有一个Wordpress网站,托管在ClearDb(Titan)的Basic(小型)Azure Web App中。我还有另一个Web App托管在此Basic服务计划中,使用Azure SQL DB。我曾经遇到一些延迟问题,但最终通过使用持久连接解决了这些问题。 (Azure web app slow server response time)。
鉴于另一个应用程序运行良好,而且一旦页面加载完成,Wordpress网站也能正常工作,我认为问题可能出在数据库连接上。我尝试在Azure VM上的docker镜像中托管MySql,但性能没有改善。
请注意,当网站处于未激活状态时,页面加载需要大约20秒。如果可以将其缩短到1-2秒左右,我会很高兴。
我尝试设置output_buffering = Off;,但没有任何改进。我还启用了AlwaysOn。
有什么建议可以改善延迟吗?

你可以尝试使用https://azure.microsoft.com/en-us/blog/10-ways-to-speed-up-your-wordpress-site-on-azure-websites/来优化你的WordPress网站。 - Gary Liu
嘿,Gary,我已经尝试过这里大部分的建议,但正如我的问题所说,我在冷启动方面遇到了最大的问题 - 即使我已经启用了 AlwaysOn。 - Pio
4个回答

4

请在设置中尝试启用“始终开启”选项。20秒是一个非常严重的数字,但“始终开启”应该可以消除冷启动问题。

更新:下一步-启用应用程序洞察(性能监视设置),以查看您的性能情况。很难说会有什么问题-您可以检查您的数据库和网站是否在同一地区(但我没有因此经历过这样的数字)。


我忘了提到,但我已经启用了AlwaysOn。 - Pio
应用洞察是否可行?当我启用它时,它表明它适用于“.NET”应用程序,并且大部分代码是使用“C#”编写的。仅浏览器页面加载数据瓷砖可以与js一起使用。我将尝试设置它。 - Pio
1
哎呀,那么问题可能出在其他地方。没错,AppInsights 的优点就是可以用它来解决这个问题。看一下如何配置该模块。https://azure.microsoft.com/zh-cn/blog/usage-analytics-for-wordpress-with-azure-app-insights/ - Alex Belotserkovskiy
我已经尝试跟随教程,但可能需要更多时间,因为您需要一个组织帐户来设置AppInsights,并且教程的某些部分非常模糊 - 例如,您需要设置仅适用于组织帐户的其他服务,但没有链接的教程。 - Pio
@Pio 顺便问一下,你看到这个了吗?https://azure.microsoft.com/zh-cn/blog/10-ways-to-speed-up-your-wordpress-site-on-azure-websites/ - Alex Belotserkovskiy

4
由于Azure WebApp上未正确配置PHP的输出缓冲,导致出现此问题。 要解决此问题,您可以在web.config文件中添加以下代码,并重新启动WebApp。
<configuration>
      <system.webServer>
         <handlers>
            <add name="PHP-FastCGI"
                path="*.php"
                verb="GET,HEAD,POST"
                modules="FastCgiModule"
                scriptProcessor="D:\Program Files (x86)\PHP\v5.4\php-cgi.exe"
                resourceType="Either"
                requireAccess="Script" 
                responseBufferLimit="0" />
         </handlers>
      </system.webServer>
</configuration>

2
你引用了一个本地硬盘驱动器 scriptProcessor="D:\Program Files (x86)\PHP\v5.4\php-cgi.exe",这是故意的吗? - Brian Milnes

2

链接已经不存在了。有什么建议吗? - jeevium

1

对我有帮助的是将Web应用程序和数据库(Azure MySQL)放在同一个区域中。在我这样做之前,一切都非常缓慢,但是一旦我重新创建了同时拥有两个资源的应用程序并将它们放在同一个区域中,该应用程序就变得非常流畅。

第一次创建该应用程序时,其资源组位于美国中部,但显然此时Azure MySQL在那里不可用,因此我不得不将数据库放在其他地方,这导致了速度缓慢。

我还启用了“始终运行”选项。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接