这是我的 Digital Ocean Ubuntu v22 VPS 上的 nginx 站点可用文件夹:
server{ server_name 139.59.62.131 animeanyway.me;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/animeanyway.me/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/animeanyway.me/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server{
if ($host = animeanyway.me) {
return 301 https://$host$request_uri;
} # managed by Certbot
}
以前,没有 SSL,它看起来像这样:
server{ server_name 139.59.62.131;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
并且这个版本的代码比第一个版本快得多,知道为什么会发生这种情况吗?
我尝试对这个文件进行多次修改,但有时不起作用,当它与 http(我展示的第二个代码)一起工作时,速度很快,而当我启用所有内容时,速度非常慢。
我不知道为什么会发生这种情况,所以如果能提供任何帮助我将不胜感激!
答案1
您应该先自己分析问题。将源响应时间和请求响应时间添加到您的日志中。查看浏览器中的 Web 开发人员工具中的流量。检查您的错误日志。
server_name 139.59.62.131 animeanyway.me;
...
if ($host = animeanyway.me) {
return 301 https://$host$request_uri;
我觉得这很奇怪。我预计这会导致重定向循环,该循环永远无法解决,或者重定向到会导致证书验证失败的 IP 地址。
我估计这可能是在前端讨论 HTTP/1.1。虽然可能与您当前的问题无关,但建议配置 HTTP/2 支持。
另外,您绝不应该使用裸域名作为您的网络服务器的规范名称;相应的 DNS 记录只能是“A”记录。