Nginx 安装和一些基本配置

  1. 安装工具
yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
  1. 编译安装
./configure --user=ifan --group=ifan --prefix=/home/ifan/software/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-threads

make && make install

Nginx上的进程数和CPU核心数相等时,进程间切换的代价是最小的。

  1. 基本配置项

1.1 error日志

语法: error_log pathfile level;
默认: error_log logs/error.log error;

1.2 定义环境变量

语法: env VAR|VAR=VALUE

1.3 嵌入其他配置文件

语法: include pathfile;

include conf.d/*conf

1.4 设置一个worker进程可以打开的最大文件句柄数

语法: worker_rlimit_nofile limit;

  1. 优化性能的配置项

2.1 进程数

语法: worker_processes number;
默认: worker_processes 1;

2.2 进程绑定到指定的CPU

仅适用于Linux

语法: worker_cpu_affinity cpumask[cpumask...]
worker_cpu_affinity 1000 0100 0010 0001;

2.3 进程优先级

语法: worker_priority nice;
默认: worker_priority 0;

nice取值范围是-20~+19, -20是最高优先级, -19是最低优先级,但是不建议比内核进程的nice值(通常为-5)还小

  1. 事件配置项

3.1 每个worker的最大连接数

worker_connections number;

修改内核参数以获得更好的性能

/etc/sysctl.conf

#表示进程(例如一个worker进程)可能同时打开的最大句柄数,直接限制最大并发连接数
fs.file max = 999999

#1代表允许将状态为TIME-WAIT状态的socket连接重新用于新的连接。对于服务器来说有意义,因为有大量的TIME-WAIT状态的连接
net.ipv4.tcp_tw_reuse = 1

#当keepalive启用时,TCP发送keepalive消息的频率。默认是2个小时。将其调小一些,可以更快的清除无用的连接
net.ipv4.tcp_keepalive_time = 600

#当服务器主动关闭链接时,socket保持FN-WAIT-2状态的最大时间
net.ipv4.tcp_fin_timeout = 30

#允许TIME-WAIT套接字数量的最大值。超过些数字,TIME-WAIT套接字将立刻被清除同时打印警告信息。默认是180000,过多的TIME-WAIT套接字会使webserver变慢
net.ipv4.tcp_max_tw_buckets = 5000

#UDP和TCP连接中本地端口(不包括连接的远端)的取值范围
net.ipv4.ip_local_port_range = 1024  61000

#TCP接收/发送缓存的最小值、默认值、最大值
net.ipv4.tcp_rmem = 4096  32768  262142
net.ipv4.tcp_wmem = 4096  32768  262142

#当网卡接收的数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数就是这个队列的最大值。
net.core.netdev_max_backlog = 8096

#内核套接字接收/发送缓存区的默认值
net.core.rmem_default = 262144
net.core.wmem_default = 262144

#内核套接字接收/发送缓存区的最大值
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152

#解决TCP的SYN攻击。与性能无关
net.ipv4.tcp_syncookies = 1

#三次握手建立阶段SYN请求队列的最大长度,默认是1024。设置大一些可以在繁忙时将来不及处理的请求放入队列,而不至于丢失客户端的请求
net.ipv4.tcp_max_syn_backlog = 1024
posted @ 2020-08-24 18:04  呓语i  阅读(131)  评论(0编辑  收藏  举报