像呵护你女朋友一样优化你的nginx系统,给她配置防盗链保护她的安全
2023-12-13 04:47:05
1 nginx系统如何隐藏版本号
可以使用 Fiddler 工具抓取数据包,查看 Nginx版本, 也可以在 CentOS 中使用命令 curl -I http://192.168.111.8显示响应报文首部信息
1.1隐藏版本号1(修改配置文件)
修改配置文件:vim /usr/local/nginx/conf/nginx.conf
重启服务并查看版本号
1.2隐藏版本号2(修改源码文件)
1.进入rpm包目录修改版本号和服务类型
vim /opt/nginx-1.22.0/src/core/nginx.h
2.重新配置编译环境,编译并安装
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
3.修改配置文件,显示版本号
vim /usr/local/nginx/conf/nginx.conf
4.重启服务并登录查看版本号是否更改
2 修改nginx用户与组
修改配置文件vim /usr/local/nginx/conf/nginx.conf
重启服务查看主进程由root创建,子进程由nginx创建
3 缓存时间
当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度 一般针对静态网页设置,对动态网页不设置缓存时间
修改配置文件设定缓存时间
vim /usr/local/nginx/conf/nginx.conf
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ---> 选择 HTML、WS、其他
访问 http://192.168.111.1.666.jpg ,双击200响应消息查看响应头中包含 Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,而不需要向 Nginx 服务器重新发出请求,减少了服务器的使用带宽。
4 日志切割
编写脚本
vim /opt/fenge.sh
添加脚本执行权限,crontab -e添加周期性计划每小时执行该脚本
5 连接超时
HTTP有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TCP连接的打开状态。若接收到来自同一客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接。 KeepAlive 在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会影响性能。
修改nginx配置文件设置长连接时间
vim /usr/local/nginx/conf/nginx.conf
5 更改进程数
在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞
cat /proc/cpuinfo | grep -c "physical id" #查看cpu核数
ps aux | grep nginx #查看nginx主进程中包含几个子进程
修改nginx的配置文件
重启服务查看进程数
6 设置并发数
vim /usr/local/nginx/conf/nginx.conf
vim /etc/security/limits.conf
7 配置网页压缩
Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能
允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装
可在配置文件中加入相应的压缩功能参数对压缩性能进行优化
vim /usr/local/nginx/conf/nginx.conf
cd /usr/local/nginx/html 为网页内容目录
vim index.html 配置nginx网页内容文件
nginx -t检查配置文件是否正确,重启服务
原文件大小为14.1KB
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ---> 选择 HTML、WS、其他
访问 http://192.168.80.10 ,双击200响应消息查看请求头中包含 Content-Encoding: gzip
8 配置防盗链
修改nginx配置文件配置防盗链
vim /usr/local/nginx/conf/nginx.conf
准备web源主机192.168.111.8网页配置
cd /usr/local/nginx/html
盗链主机配置
cd /usr/local/nginx/html
测试是否能盗取图片连接
清除防盗链配置再测试,可以显示盗链图片
9 nginx常用内核优化
/etc/sysctl.conf ? ? ? ? ? ? ? ? ? ? ? ? ? ? 内核参数的配置文件 net.ipv4.tcp_sysconkies = 1 ? ? ? ? ? ? ? ? ? 开启SYN cookies 当出现SYN等待队列溢出时启用,启用cookies来处理,可防范少量SYN攻击 net.ipv4.tcp_tw_rease = 1 ? ? ? ? ? ? ? ? ? ? 开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接 net.ipv4.tcp_tw_recycle = 1 ? ? ? ? ? ? ? ? ? 开启TCP连接中TIME-WAIT sockets的快速回收 net.ipv4.tcp_fin_timeout = 30 ? ? ? ? ? ? ? ? 修改系统默认的 TIMEOUT 时间(MSL值),原本是60s net.ipv4.ip_local_port_range = 1024 65535 ? ? 外向连接的端口范围 net.ipv4.tcp_max_tw_buckets = 5000 ? ? ? ? ? 系统同时保持TIME-WAIT的最大数量 net.ipv4.tcp_max_syn_backlog = 8192 ? ? ? ? ? 系统能接受的tcp半连接的最大队列数 net.core.somaxconn = 10000 ? ? ? ? ? ? ? ? ? 每一个端口最大的 Listen 监听队列的长度 net.ipv4.tcp_keepalive_time = 1200 ? ? ? ? ? 发送keepalive探测包消息的频率 ? net.ipv4.tcp_syncookies = 1
10 内核限制文件
/etc/security/limits.conf 内核限制文件
* ? ? soft ? ? noproc ? ? ? ? ? 65535 ? ? 打开的进程数 * ? ? hard ? ? noproc ? ? ? ? ? 65535 * ? ? soft ? ? nofile ? ? ? ? ? 65535 ? ? 打开的文件数 * ? ? hard ? ? nofile ? ? ? ? ? 65535 * ? ? soft ? ? memlock ? ? ? ? unlimited ? ? 不做内存锁定 * ? ? hard ? ? memlock ? ? ? ? unlimited
11 常用的nginx模块
rewrite ? ? ? ? ? ? ? ? ? ? 重写功能 access ? ? ? ? ? ? ? ? ? ? 来源控制 ssl ? ? ? ? ? ? ? ? ? ? ? ? 安全加密 ngx_http_gzip_module ? ? ? 网络传输压缩模块 ngxhttp_proxy_module ? ? ? 模块实现代理 ngx_http_upstream_module ? 定义后端服务器列表 ngx_cache_purge ? ? ? ? ? ? 实现缓存清除功能 ?
12 源码编译安装nginx时,如何启用更多的模块以及禁用不需要的模块?简单描述下你都使用过哪些模块?
执行,/configure脚本时,通过添加 --with-模块名 的方式启用更多模块,通过添加 --without-模块名 的方式禁用不需要的
文章来源:https://blog.csdn.net/2301_76288258/article/details/134954420
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!