Heim > Fragen und Antworten > Hauptteil
Ich habe ernsthafte Probleme bei der Bereitstellung meiner Laravel-Anwendung. Dies ist eine Nachrichtenseite, nichts Kompliziertes. Die gesamte Homepage wird in Redis als reines HTML zwischengespeichert und Abfrageergebnisse werden ebenfalls in Redis gespeichert, sodass die MySQL-Nutzung sehr minimal ist. Da die Anwendung voll funktionsfähig ist, haben wir beschlossen, sie nachts in der Produktionsumgebung zu testen. Nach der Bereitstellung stellten wir fest, dass die CPU-Auslastung auf allen 12 Kernen auf 90–100 % anstieg, sodass die Anwendung sehr langsam oder überhaupt nicht lief. Es gibt etwa 400 Benutzer und 17–20 Anfragen pro Sekunde.
Wir haben versucht, die Servereinstellungen zu ändern (z. B. PHP-FPM), aber ohne Erfolg. Wir haben einige Tests mit Apache Benchmark durchgeführt und die Ergebnisse zeigten, dass die CPU-Auslastung bei 10 gleichzeitigen Benutzern etwa 80–100 % betrug. Als nächstes wiederholten wir den Test mit einem sauberen Laravel (ohne unsere Anwendung) mit ähnlichen Ergebnissen.
Was wir verwenden:
Wir haben festgestellt, dass Nginx-Caching die CPU-Auslastung in Anwendungen wie Wordpress oder Drupal reduzieren kann. Aber ich denke, Laravel nutzt es nicht. Muss Laravel so konfiguriert werden, dass es den Nginx-Reverse-Proxy verwendet und ihn auf besondere Weise zwischenspeichert?
Ich weiß wirklich nicht, was ich tun soll. Hat jemand ähnliche Probleme festgestellt?
P粉4638401702024-03-28 00:33:42
Laravel 在 Nginx 上运行得很好。我使用 Nginx 在 Google Cloud 上的容器中运行我的应用程序,没有任何性能问题。
如果您想使用保留代理,这个代理可以帮我完成这项工作:
server { listen 80; your_news_app.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:8000; }
}