LNMP环境搭建(Nginx配置及优化)

1、基于安全的优化

1)隐藏版本信息

在Nginx配置文件nginx.conf中的http标签内加入“server_tokens off;”。

修改前:

修改:

 

重启nginx:

[root@linux conf]# /application/nginx/sbin/nginx -s reload

修改后:

2)修改nginx源码,隐藏软件名及版本号,修改文件如下,修改后重新编译安装nginx。

[root@linux conf]# vim /home/linux/tools/nginx-1.19.4/src/core/nginx.h

 [root@linux conf]# vim /home/linux/tools/nginx-1.19.4/src/http/ngx_http_header_filter_module.c

 

[root@linux conf]# vim /home/linux/tools/nginx-1.19.4/src/http/ngx_http_special_response.c

当页面报错时,可控制是否展示敏感信息。

修改后重新编译、安装、配置、启动服务。

3)更改Nginx服务的默认用户
方法一:配置nginx.conf文件

创建nginx用户

[root@linux conf]# useradd nginx -s /sbin/nologin -M

配置nginx.conf文件

#user  nobody;

修改为:

user nginx nginx;

修改后重新加载nginx

[root@linux conf]# /application/nginx/sbin/nginx -s reload

方法二:在编译nginx软件的时候,指定用户和组

如四-3中的配置,如下:

./configure --user=nginx --group=nginx --prefix=/application/nginx --with-http_stub_status_module --with-http_ssl_module

检查更改用户的效果

[root@linux conf]# ps -ef |grep nginx|grep -v grep

 

 2、根据参数优化nginx服务性能

1)优化nginx服务的worker进程数

对于高并发场合,进程数初始设置为cpu核数的2倍较为合适,后期可根据徐彤负载、硬盘存储等情况做调整。

查看cpu颗数:

[root@linux conf]# grep 'physical id' /proc/cpuinfo|sort|uniq|wc -l

查看cpu核数:

[root@linux conf]# grep processor /proc/cpuinfo |wc -l

修改nginx.conf文件中的worker_processes,设置nginx服务worker进程数,重启nginx服务。

[root@linux conf]# vim nginx.conf

[root@linux conf]# /application/nginx/sbin/nginx -t

nginx: the configuration file /application/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /application/nginx/conf/nginx.conf test is successful

[root@linux conf]# /application/nginx/sbin/nginx -s reload

2)将不用的nginx进程绑定到不用的cpu内核上

Nginx默认没有开启利用多核cpu,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核cpu的性能。开启示例如下:

#2核cpu,开启2个进程

worker_processes     2;

worker_cpu_affinity 01 10;

#2核cpu,开启4个进程,

worker_processes     4;

worker_cpu_affinity 01 10 01 10;

#4核cpu,开启2个进程,0101表示开启第一个和第三个内核,1010表示开启第二个和第四个内核;

worker_processes     2;

worker_cpu_affinity 0101 1010;

 3)nginx时间处理模型优化

示例:

events

{

use epool;

}

Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll,其中select和poll是标准工作模式,kqueue和epoll是高效工作模式,不同处是epoll用在linux平台,而kqueue用在BSD系统中。

不指定时间处理模型,nginx会自动选择最佳的事件处理模型服务。

4)nginx单个进程允许的客户端最大连接数

参数:worker_connections

5)nginx worker进程的最大打开文件数

参数:worker_rlimit_nofile

6)连接超时参数设置

参数:keepalive_timeout

7)读取客户端请求头数据的超时时间

参数:client_header_timeout

8)读取客户端请求主体的超时时间

参数:client_body_timeout

9)响应客户端的超时时间

参数:send_timeout

10)上传文件大小限制

参数:client_max_body_size

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值