Nginx 踩坑
NGINX 是 CPU 亲和的,把每个 worker 进程固定在一个 CPU 上执行,减少切换CPU的cache miss,获得更好的性能。处理静态资源效率高的原因是采用了sendFile工作机制:文件从硬盘上读取到网络传输的过程不经过用户空间,也就是常说的零拷贝机制:
防盗链
主要是区分合法请求和非法请求,常用的解决方案有以下几种:
- 基于http_refer防盗链配置模块
url重写
网站维护的时候将所有页面重定向到维护页面:
1 | rewrite ^(.*)$ /pages/maintain.html |
301和302的区别:301是永久重定向,客户端会缓存重定向后的地址(即使服务器关闭也能跳转到对应的地址),302请求每次都会访问服务器。所以做重定向的时候最好选择302,301如果跳转的链接改了是无法及时更新的。
https优化:
- 激活keepalive长连接
- 设置ssl session缓存
所有的压缩算法对文本的压缩效率是最高的
nginx调优
文件描述符修改
/etc/security/limits.conf
1 | # 针对用户配置 |
soft和hard的区别,soft只是警告,而hard是会强制拒绝的。
基于nginx+lua的防火墙
https://github.com/loveshell/ngx_lua_waf
常用模块
- http_stub_status_module:监控服务器运行状态
- http_sub_module:http内容替换
- http_access_module:基于ip的访问控制
- http_auth_basic_module:基于用户的信任登录
- http_secure_link_module:给服务器文件链接添加时间戳和校验码,从而保护服务器文件不被任意下载盗用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 雨碎江南!