四十二、LAMP与LNMP web架构深度优化实战-第一部
1.nginx.conf配置文件基本参数优化
1.1 隐藏nginx header内版本号信息
一些特定的系统及服务漏洞一般都和特定的软件版本号有关,我们应尽量隐藏服务器的敏感信息(软件名称及版本等信息),这样黑客无法猜到有漏洞的服务是否是对应服务的版本,从而确保web服务最大的安全。
[root@djw1 ~]# curl -I 192.168.0.102
HTTP/1.1 200 OK
Server: nginx/1.6.2 --优化隐藏这个版本号
Date: Fri, 14 Jun 2019 08:25:07 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.3.27
配置参数如下:
[root@djw1 ~]# cat /application/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
server_tokens off;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include extra/www.conf;
# include extra/bbs.conf;
}
测试:
}
[root@djw1 ~]# /application/nginx/sbin/nginx -s reload
[root@djw1 ~]# curl -I 192.168.0.102
HTTP/1.1 200 OK
Server: nginx --版本消失
Date: Fri, 14 Jun 2019 08:39:15 GMT
Content-Type: text/html
Connection: keep-alive
1.2更改掉nginx的默认用户及用户组nobody
nginx服务启动,使用的默认用户是nobody,为了防止黑客猜到这个用户,我们需要更改下特殊的用户名,提供nginx服务用。
[root@djw1 conf]# grep "#user" nginx.conf.default
#user nobody;
解决:1.编译的时候指定就会将nginx.conf中的nobody覆盖
./configure --user=nginx --group=nginx --prefix=/application/nginx1..6.2 --with-http_stub_status_module --with_ssl_module
useradd nginx -s /sbin/nologin -M 不需要有系统登陆权限,禁止登陆
检测:ps -ef|grep nginx
root 25042 1 0 04:23 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
nginx 25738 25042 0 16:39 ? 00:00:00 nginx: worker process
1.3 配置nginx worker进程个数
在高并发场景,我们需要事先启动更多的nginx进程以保证快速响应并处理用户的请求。可以按照CPU的核数设置,查看cpu的核数 grep "physical id" /proc/cpuinfo
1.5事件处理模型优化
nginx的连接处理机制在于不同的操作系统采用不同的IO模型,在linux使用epoll的IO多路复用模型,在windwos使用icop等。当然还有其他操作系统
根据操作系统的不同,选择不同的模型。
在nginx.conf的event事件中进行配置

1.6 调整单个进程允许的客户端最大连接数
这个值根据具体服务器性能和程序的内存使用量来指定
也是在event事件中进行配置

1.7 如果定义了大量名字,或者定义了非常长的名字,那就需要在http配置块中调整server_names_hash_max_size和server_names_hash_bucket_size的值
1.8设置连接超时事件
keepalive_timeout 60 会话多长事件断掉
client_header_timeout 15 客户端连接上,不发送数据,就会断掉(header)
client_body_timeout 15 客户端连接上,不发送数据,就会断掉(body)
send_timeout 15 两个连接活动之间的事件,就是发送时间,如果超过这个时间,客户端没有任何活动,nginx将会关闭连接
1.9上传文件大小限制
主配置文件里面加入如下参数: client_max_body_size 10m
会在curl IP -I处显示:Content-Length

2.0 fastcgi 优化(配合PHP引擎动态服务)
fastcgi_connect_timeout 300; (指定连接到后端FastCGI的超时时间)
fastcgi_send_timeout 300;建立连接,向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间
fastcgi_read_timeout 300;建立连接,接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间
fastcgi_buffer_size 64K;将读取的内容缓冲区,第一个缓冲区
fastcgi_buffers 4 64k;用多少多大的缓冲区来应答请求等等
2.1隐藏软件名称 :防止黑客攻击,需要改head和错误提示,可以百度解决!
人的行为受潜意识的控制
1.价值观 2.信念 3.能力
四十二、LAMP与LNMP web架构深度优化实战-第一部的更多相关文章
- 四十三、LAMP与LNMP web架构深度优化实战-第二部
1. 配置nginx gzip压缩功能 服务器对发出的内容进行压缩,带宽少了,体验好,速度快,但是服务端压,会使cpu使用高,压缩比高的进行压缩:文本.程序文件.数据文件.图片视频不要压缩,一般 ...
- 四十、LAMP与LNMP加速与缓存优化进阶实战上部
实例: 一. 所有服务器配置定时时间同步,必须通过web server上网. 有两种方式: 1.服务器A能进行上网,作为web server ,通过指定为ntp服务器,所有服务器访问这个服务器 2.服 ...
- 四十一、LAMP与LNMP加速与缓存优化进阶实战下部
一.配置,在nginx和apache所在的服务器中: 1.配置:cd /application/php/lib/php.ini 1)extension_dir="/application/p ...
- WEB架构深度优化之PHP
一.PHP引擎缓存加速优化(4种) 1.eAccelerator 2.XCache 3.APC 4.Zend 二.使用tmpfs作为缓存加速缓存的目录(可用rc.local或fstab来自动挂载) m ...
- NeHe OpenGL教程 第四十二课:多重视口
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Python开发【第二十二篇】:Web框架之Django【进阶】
Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 ...
- 网站开发进阶(四十二)巧用clear:both
网站开发进阶(四十二)巧用clear:both 前言 我们在制作网页中用div+css或者称xhtml+css都会遇到一些很诡异的情况,明明布局正确,但是整个画面却混乱起来了,有时候在IE6下看的很正 ...
- Gradle 1.12用户指南翻译——第四十二章. Announce插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- SQL注入之Sqli-labs系列第四十一关(基于堆叠注入的盲注)和四十二关四十三关四十四关四十五关
0x1普通测试方式 (1)输入and1=1和and1=2测试,返回错误,证明存在注入 (2)union select联合查询 (3)查询表名 (4)其他 payload: ,( ,( 0x2 堆叠注入 ...
随机推荐
- webservice 的简单实现
1.什么是webservice: 服务端整出一些资源让客户端访问(获取数据) 一个跨语言.跨平台的规范2.作用:跨平台调用.跨语言调用.远程调用 3.什么时候使用webservice: 1.新旧系统之 ...
- 自定义checkbox,redio等
直接上代码: 看的懂看,看不懂拉到. .messageState li {list-style: none;float: left;padding-right:30px;font-size: 16px ...
- mui下拉刷新 上拉加载
a页面是父页面 b页面是子页面 在b页 html+ js+ 下拉和上拉执行的函数就不贴了 .在这个过程中还遇到了个问题就是刷新的图标偏上 需要改变其高度,需要在a页面里面去改变刷新图标的样式 本文 ...
- 二、CI框架之MCV模型
一.关于MCV,大概就是下图所示: 模型(model)-视图(view)-控制器(controller) M用来处理数据库,V用来显示界面,C用来控制 二.对应到CI的源码,对应的是这3个目录 不忘初 ...
- swift中block的使用
在OC中习惯用block来传值,而swift中,block被重新定义了一下,叫闭包: 使用的技巧:谁定义谁传值: 案例使用A.B控制器: 1~4步在B中执行,最后在A中执行: - B控制器: 1- ...
- Python风格规范分享
今天给大家分享Python 风格规范,以下代码中 Yes 表示推荐,No 表示不推荐. 分号 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 每行不超过80个字符 以下情况除外: 长的 ...
- UVALive 5913 字典树
先输入n个字符串的字典,每个字符串的前缀+后缀可以组成新的合法字符串,但肯定是有重复的,问从给定的字符串,生成的所有可能的字符串为多少个 把前缀和后缀压入字典树,达到前缀和后缀的去重,首先的总和即为前 ...
- Java基础之IO流整理
Java基础之IO流 Java IO流使用装饰器设计模式,因此如果不能理清其中的关系的话很容易把各种流搞混,此文将简单的几个流进行梳理,后序遇见新的流会继续更新(本文下方还附有xmind文件链接) 抽 ...
- h5-transform二维变换-扑克牌小案例
html代码:6张扑克牌 <div class="pkBox"> <img src="../img/pk1.jpg" alt="&q ...
- 强大的代码生成器——T4模板
T4 Editor工具下载地址 tangible T4 Editor 2.5.0 plus modeling tools for VS 2019 https://marketplace.visuals ...