不知道但是很常见的nginx问题
文是明月在 segmentfault 里无意中看到的,感觉虽然说的都是很简单的东西,但还是有很强的启迪作用的。所以就收录到学习笔记来分享了。至少对于刚刚开始接触使用Nginx的新手们来说还是帮助不小的。
nginx使用问题及解决方法
常见问题
问题一:相同server_name多个虚拟主机优先级访问
server{
listen 80;
server_name server1;
location{...}
}
server{
listen 80;
server_name server2;
location{...}
}
解决方法:
配置两个conf文件:server1.conf 和 server2.conf
根据Linux系统中文件顺序读取
问题二:location匹配优先级
location = /code1/ {
rewrite ^(.*)$ /code1/index.html break;
}
location ~ /code.* {
rewrite ^(.*)$ /code3/index.html break;
}
location ^~ /code {
rewrite ^(.*)$ /code2/index.html break;
}
知识填坑:
=:进行普通字符精确匹配,完全匹配
^~:普通字符匹配,使用前缀匹配
~ ~*:表示执行一个正则匹配()
解决方法:
根据匹配找到最优匹配
优先级:完全匹配>正则匹配>前缀匹配
问题三:try_files使用
location / {
try_files $uri $uri/ /index.html;
}
解决方法:
按顺序检查文件是否存在
问题四:Nginx的alias和root区别
location /request_path/img/ {
root /local_path/img/;
}
location /request_path/img/ {
alias /local_path/img/;
}
解决方法:
root 设置,最终请求的路径为 /local_path/img/request_path/img/
alias 设置,最终请求为 /local_path/img/
问题五:通过多层代理,传递用户真实IP
解决方法:
set x_real_ip=$remote_addr
$x_real_ip=真实IP
性能优化问题
优化考虑点:
当前系统结构瓶颈,如观察指标、压力测试
了解业务模式,如接口业务类型、系统层次化结构
性能与安全
接口压力测试工具: ab
安装: yum install httpd-tools
使用: ab -n 2000 -c 20 http://127.0.0.1/
nginx关于系统的优化点:
网络、系统、服务、程序、数据库
控制文件句柄数量,文件句柄就是一个索引
CPU亲和,使进程不会在处理器间频繁迁移,减少性能损耗
vim /etc/nginx/nginx.conf
user nginx;
worker_processes 16;
worker_cpu_affinity auto;
worker_rlimit_nofile 15535;
events{
use epoll;
worker_connections 10240;
}
http{
include /etc/nginx/mime.types;
default_type application/octet-stream;
#Charset
charset utf-8;
log_format main '';
access_log /var/log/nginx/access.log main;
#Core module
sendfile on;
keepalive_timeout 65;
#Gzip module
gzip on;
gzip_disable "MSIE [1-6]\.";
gzip_http_version 1.1;
#Virtal server
include /etc/nginx/conf.d/*.conf;
}
nginx安全问题及防范策略
恶意行为
问题:爬虫行为和恶意抓取、资源盗用
解决方法:
基础防盗链功能:不让恶意用户轻易的爬取网站对外数据
secure_link_module 模块:对数据安全性提高加密验证和失效性,对一些重要数据使用
access_module 模块:对后台、部分用户服务的数据提供IP监控,如规定IP等
应用层攻击
问题一:后台密码撞库,通过密码字典不断对后台系统登录性尝试,获取后台密码
解决方法:
后台密码复杂的,大小写数字字符等
预警机制,同一IP的频繁访问
access_module 模块:对后台、部分用户服务的数据提供IP监控
问题二:文件上传漏洞,利用可以上传的接口将恶意代码植入服务器中,再通过url访问以执行
解决方法:
针对一些木马和后缀等做一定的处理
location ^~ /upload{
root /usr/share/html;
if($request_filename ~*(.*)\.php){
return 403; #拒绝访问
}
}
问题三:SQL注入,利用未过滤或未审核的用户输入的攻击手段,让应用运行本不应该运行的SQL代码
解决方法:
针对' or 1=1 #等常见注入代码进行检测
搭建安全waf,针对渗透规则写正则表达式
nginx防攻击策略
使用nginx+Lua搭建安全waf防火墙
防火墙功能:
拦截Cookie类型攻击
拦截异常post请求
拦截cc攻击,频繁访问
拦截URL,不想暴露的接口
拦截arg参数
责任编辑:任我行
-
碳中和战略|赵英民副部长致辞全文
2020-10-19碳中和,碳排放,赵英民 -
两部门:推广不停电作业技术 减少停电时间和停电次数
2020-09-28获得电力,供电可靠性,供电企业 -
国家发改委、国家能源局:推广不停电作业技术 减少停电时间和停电次数
2020-09-28获得电力,供电可靠性,供电企业
-
碳中和战略|赵英民副部长致辞全文
2020-10-19碳中和,碳排放,赵英民 -
深度报告 | 基于分类监管与当量协同的碳市场框架设计方案
2020-07-21碳市场,碳排放,碳交易 -
碳市场让重庆能源转型与经济发展并进
2020-07-21碳市场,碳排放,重庆
-
两部门:推广不停电作业技术 减少停电时间和停电次数
2020-09-28获得电力,供电可靠性,供电企业 -
国家发改委、国家能源局:推广不停电作业技术 减少停电时间和停电次数
2020-09-28获得电力,供电可靠性,供电企业 -
2020年二季度福建省统调燃煤电厂节能减排信息披露
2020-07-21火电环保,燃煤电厂,超低排放
-
四川“专线供电”身陷违法困境
2019-12-16专线供电 -
我国能源替代规范法律问题研究(上)
2019-10-31能源替代规范法律 -
区域链结构对于数据中心有什么影响?这个影响是好是坏呢!