您正在查看:标签 nginx 下的文章

Nginx开启OCSP以解决Let's Encrypt证书被DNS污染访问缓慢

1 起因

最近突然发现我的网站在苹果手机上Safari浏览器上第一次会访问会非常慢,但只要第一次访问后,后续的访问速度均不受影响...
这就纳闷了,网站速度我都是优化过的,为什么会存在这种情况呢?
困扰我许久,因为只有手机访问才这样,在电脑上访问速度都很快,完全没有头绪... 泪.png

2 问题研究

在多次尝试后,发现在Firefox和IE浏览器上能复现该问题,在ssl握手之前,Firefox会阻塞2s,IE浏览器会阻塞10s以上;
2020-11-23T13:01:40.png

问题能复现就好解决了;
使用Charles进行抓包,发现使用IE打开网站的时候,会去请求ocsp.int-x3.letsencrypt.org域名进行证书验证,该域名无法访问从而导致访问速度变慢;
QQ截图20201125100329.png

所以问题就出在SSL证书上面,我使用的证书全部是Let's Encrypt证书,其特点是免费、支持泛域名、并且脚本一键部署,但是Let's Encrypt证书的OCSP验证域名被DNS污染,无法解析到正确的IP地址,导致无法进行证书有效性验证。
2020-11-23T13:05:29.png

这时候有同学要问了:OCSP验证又是什么呢?

- 阅读剩余部分 -

nginx下禁止访问.git等隐藏文件夹

今天进腾讯云的控制台 偶然发现腾讯云一直给我提示的漏洞 其中有一个挺为严重的 汗.png
QQ截图20180626155743.png

我的网站配置下并没有屏蔽隐藏文件夹例如.git等文件夹的访问 甚至可以直接下载隐藏文件夹的内容 啊.png
确实是我没有想到的 如果你也有这种情况 就需要进行配置服务器来禁止敏感文件的访问了 否则就直接暴露在大庭广众之下了...

nginx的配置很简单
在server{}段内增加
代码如下:

location ~ /\.
{
deny all;
}

这样就把所有的隐藏文件夹给屏蔽访问了 如果想单独屏蔽某一隐藏文件夹的访问只需要

location ^~ /.git
{
return 444;
}

给 Nginx 配置 errpage 错误显示页面

Nginx 默认的错误显示界面 有点枯燥 一般用户碰见错误页面会不知道怎么回事 然后就离开了 会导致流量流失

当然我们可以自定义 Nginx 的错误页面,动手能力强的同学可以自己写一个简单的错误页面(一般包括400,401,403,404,405,500,503等)
具体错误代码代表什么意思可以自行谷歌
当你做好自己的错误页面后 可以把你的错误页面放到 errpage 文件夹里 然后传到你网站的根目录下

然后修改你 Nginx 的网站配置文件 加入如下语句

error_page 400 /errpage/400.html;
error_page 401 /errpage/401.html;
error_page 403 /errpage/403.html;
error_page 404 /errpage/404.html;
error_page 405 /errpage/405.html;
error_page 500 /errpage/500.html;
error_page 502 /errpage/502.html;
error_page 503 /errpage/503.html;

一定不要用=号 例如:error_page 400 = /errpage/400.html;
用了=返回状态是200,问题很严重:1.搜索引擎 2.是 ajax 错误不容易查找

保存配置后重启 Nginx service nginx restart

然后我们会发现 普通的静态页面可以正常返回错误页面 可是 PHP 页面就不行

- 阅读剩余部分 -