Nginx 架构篇
Nginx 常见问题
1.相同server_name 多个虚拟主机优先级访问
按照nginx读取配置文件显示顺序读取
location 优先级匹配
1.= 进行普通字符精确匹配 也就是完全匹配 精确匹配优先级最高
2.^~ 表示普通字符匹配 使前缀匹配
3.~ \~* 表示执行一个正则匹配
try_files s使用
按顺序检查文件是否存在
location / {
root /opt/files
try_files $uri @java_page
}
location @java_page{
proxy_pass http://192.146.55.25:9999
}
如何获取用户真实IP
ip1 - ip2 - ip3 -ipn
set x_real_ip = $remote_addr
其他
nginx 413 request entity too large
1.用户上传文件限制 client_max_body_size
502 bad gateway 后端服务无响应
504 gateway timeout 后端服务响应超时
Nginx 性能优化
1.性能优化考虑点
1)当前系统结构瓶颈 观察指标 压力测试
2)了解业务模型
3)性能和安全
2.压测工具ab
yum install -y httpd-tools
ab -n 2000 -c 22 接口
-n总请求数
-c并发数
-k是否开启keepalive
栗子:
ab -n 1000 -c 1000 -p D:\software\httpd-2.4.41-o102s-x86-vc14-r2\Apache24\bin\param.txt -T application/json http://127.0.0.1:8080/app/order/createOrder
3.系统与nginx性能优化
系统与Nginx性能优化
木桶效应
网络
系统(硬件软件)
服务
程序
数据库 底层服务
1.文件句柄
linux\unix 一切文件 文件句柄就是一个索引
设置方式 默认1024 10240
全局 局部 进程修改
查看 句柄数 ulimit -n
lsof -p 【PID】查看进程PID打开的文件句柄详细信息
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 查看当前进程打开了多少句柄数 其中第一列是打开的句柄数,第二列是进程ID。
2.cpu亲和优化 减少CPU切换损耗
查看当前有多少CPU
cat /proc/cpuinfo | grep "physical id" | sort | uniq |wc -l
查看多少核心
cat /proc/cpuinfo | grep "cpu cores" | uniq
相乘得到多少核心
cpu亲和配置
worker_processes 相乘得到多少核心;
worker_cpu_affinity
或者worker_cpu_affinity auto; 1.9版本以后出来的
查看nginx使用的CPU
ps -eo pid,args,psr |grep [n]ginx;
3.worker_limit_nofile 65535;
4.事件驱动器
events{use epoll;worker_connections 10240; 每个worker处理10240*worker_processes}
5.字符集
charset utf-8;
Nginx 安全
1.常见恶意行为
爬虫 恶意抓取 资源盗用
referer
secure_link_moudle
access_moudle 把后台功能提供IP防控
2.常见应用攻击手段
1.后台密码撞库 解决:1.密码复杂度高 2.access_module 对后台提供IP访问 3.预警机制
2.文件上传漏洞 解决 所有以upload路径的路径 判断文件 如果不符合如 .php .jps 返回403
3.SQL注入 解决:
4.频繁访问
CCDeny="on"
CCreat="10/1" 一秒10次一个IP
3.nginx攻防策略
4.Nginx+lua实现waf防火墙
Nginx漏洞和新版本漏洞
http://nginx.org/en/download.html 官网 CHANGES
----------------------------------------------------------------
本文来自博客园,作者:苏子墨,转载请注明原文链接:https://www.cnblogs.com/li-xiaotian/p/16602706.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix