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

[root@djw1 conf]# cat nginx.conf.default
worker_processes  1;
   1.4根据cpu核数进行nginx进程优化
      默认情况nginx的多个进程可能跑到一个cpu,本节是分配不同的进程给不同的cpu处理,达到充分利用硬件多核多CPU的目的
     woker_cpu_affinity 0001 0010 0100 1000(4核cpu)
命令:top是查看linux性能指标的一个命令,按1,查看cpu的核数
           tastset可以指定进程运行在某个cpu上。

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架构深度优化实战-第一部的更多相关文章

  1. 四十三、LAMP与LNMP web架构深度优化实战-第二部

    1. 配置nginx gzip压缩功能    服务器对发出的内容进行压缩,带宽少了,体验好,速度快,但是服务端压,会使cpu使用高,压缩比高的进行压缩:文本.程序文件.数据文件.图片视频不要压缩,一般 ...

  2. 四十、LAMP与LNMP加速与缓存优化进阶实战上部

    实例: 一. 所有服务器配置定时时间同步,必须通过web server上网. 有两种方式: 1.服务器A能进行上网,作为web server ,通过指定为ntp服务器,所有服务器访问这个服务器 2.服 ...

  3. 四十一、LAMP与LNMP加速与缓存优化进阶实战下部

    一.配置,在nginx和apache所在的服务器中: 1.配置:cd /application/php/lib/php.ini 1)extension_dir="/application/p ...

  4. WEB架构深度优化之PHP

    一.PHP引擎缓存加速优化(4种) 1.eAccelerator 2.XCache 3.APC 4.Zend 二.使用tmpfs作为缓存加速缓存的目录(可用rc.local或fstab来自动挂载) m ...

  5. NeHe OpenGL教程 第四十二课:多重视口

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. Python开发【第二十二篇】:Web框架之Django【进阶】

    Python开发[第二十二篇]:Web框架之Django[进阶]   猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 ...

  7. 网站开发进阶(四十二)巧用clear:both

    网站开发进阶(四十二)巧用clear:both 前言 我们在制作网页中用div+css或者称xhtml+css都会遇到一些很诡异的情况,明明布局正确,但是整个画面却混乱起来了,有时候在IE6下看的很正 ...

  8. Gradle 1.12用户指南翻译——第四十二章. Announce插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  9. SQL注入之Sqli-labs系列第四十一关(基于堆叠注入的盲注)和四十二关四十三关四十四关四十五关

    0x1普通测试方式 (1)输入and1=1和and1=2测试,返回错误,证明存在注入 (2)union select联合查询 (3)查询表名 (4)其他 payload: ,( ,( 0x2 堆叠注入 ...

随机推荐

  1. python 列表和字符串

    python 列表中保留所有字符串前三项,并保存到一个新的列表l = [s[:3] for s in data] python 在列表中查找包含所以某个字符串的项,并保存到一个新的列表l = [s f ...

  2. 关于低成本Sub-1Ghz无线射频方案首选:CMT2110A

    对于现在的无线遥控市场竞争力极大,不过是在成本方面和性能方面大家都希望能做到精打细算,目前超低功耗Sub-1Ghz 首选方案是CMT2110/17A 芯片具有超低成本,高性能灵活的单芯片OOK发射器, ...

  3. PHP循环语句练习题

    <?php //输出0-100所有数字 for ($i=0; $i <101 ; $i++) { echo($i . '<br />'); }; //输出水仙花数 for ($ ...

  4. ng : File C:\Users\baron\AppData\Roaming\npm\ng.ps1 cannot be loaded because running

    一. Windos PowerShell 选择 管理员身份运行二.set-ExecutionPolicy RemoteSigned 然后更改权限为A 三.get-ExecutionPolicy 查看当 ...

  5. .NET CORE AutoMapper使用

    1.通过nuget安装AutoMapper,版本是7.0.1, 安装AutoMapper.Extensions.Microsoft.DependencyInjection  版本是4.0.1 不是以上 ...

  6. HDU_1059 多重背包问题

    F - Dividing Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit ...

  7. A. Yellow Cards ( Codeforces Round #585 (Div. 2) 思维水题

    ---恢复内容开始--- output standard output The final match of the Berland Football Cup has been held recent ...

  8. maven常用配置setting.xml详解

    参考文章: https://www.cnblogs.com/hwaggLee/p/4579418.html 1.<localRepository/> 该值maven本地仓库的路径 < ...

  9. NABCD模型——星遇

    我们项目是个面向希望有新奇体验的用户的社交软件,致力于打造不一样的有趣的社交. 发表后一周预计用户量:1000人 N:(Need,需求) 目前主流社交软件由于时间原因体量越来越大,各种繁琐而不必要的功 ...

  10. protobuf 的enum与string转换

    c/c++ enum 介绍 说起c/c++ 的enum,比起python 真的是方便简洁 enum type{ type1 = 0, type2 } enum的元素对应的int 默认从0 开始依次增加 ...