这是在运行 Ubuntu 16.04.3 LTS 的服务器上,为 Angular Web 应用程序提供服务。网站运行完全正常,但加载页面非常慢,有时需要几分钟。我尝试了各种解决方案,包括这。这确实显著加快了网站速度,但也导致一些页面无法访问。任何帮助或提示都将不胜感激,谢谢!
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl;
ssl_certificate /location/
ssl_certificate_key /location/
root /location/;
index index.html index.htm index.nginx-debian.html;
server_name site.net;
add_header Strict-Transport-Security max-age=500;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:1337/;
proxy_buffering off;
}
}
答案1
性能良好的 Web 服务器通常是许多小优化的结果。但页面加载需要几分钟时间(!)看起来更像是配置错误,而不是缺少性能优化。
由于你没有明确指出页面加载速度较慢的部分……我会这样做:
检查客户端的网络连接是否缓慢:https://fast.com
- 真的是服务器的问题吗?还是您与服务器的连接的问题?
检查页面加载时间https://www.webpagetest.org
TTFB 慢?-> 检查 DNS。检查 SSL 协商。检查服务器上的缓存。
完成初始请求需要很长时间?-> 检查数据库查询是否缓慢。检查数据库表索引是否缺失。检查应用程序代码。
检查初始重定向通常会使缓慢的站点变得更慢。-> 检查 nginx 配置和应用程序代码中尾随斜杠的一致使用。
检查 nginx vhost 配置。
- 将 :80 和 :443 上的监听放在一个
server
块中似乎不行。您肯定希望将 :80 请求重定向到 :443,因此您应该将 :80 和 :443 拆分为两个“服务器”块。 服务器没有监听 :443 上的 IPv6 似乎有问题。
也许添加 http2 支持 443 listen 参数
- 将 :80 和 :443 上的监听放在一个
检查 nginx 日志文件。
也许可以使用高级日志功能并向 log_format 添加时间信息。请参阅这里。
如果不需要,请关闭生产中的日志记录。
检查 nginx.conf。
worker_processes 和 worker_connections 的值正常吗?
速率限制已激活?
检查直接为应用程序提供服务而不是通过 proxy_pass 提供服务时的性能差异。
检查服务器上的缓存。
查看更多有关 nginx 性能调优的选项这里。
检查 Ubuntu 日志(例如 syslog)中是否存在其他问题,例如硬盘故障、fail2ban 问题……
祝你好运!