NGINX 调优

修改 /etc/sysctl.conf Linux 内核参数,让 nginx 充分的发挥 fs.file-max = 65535 表示单个进程最大可以打开的句柄数 追加修改 /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535 net.ipv4.tcp_tw_reuse = 1 表示允许将 TIME_WAIT 状态的 socket 重新用于新的 TCP 链接,这对于服务器来说意义重大,因为总有大量 TIME_WAIT 状态的链接存在 ner.ipv4.tcp_keepalive_time = 600 当 keepalive 启动时,TCP 发送 keepalive 消息的频度;默认是 2 小时,将其设置为 10 分钟,可以更快的清理无效链接 net.ipv4.tcp_fin_timeout = 30 当服务器主动关闭链接时,socket 保持在 FIN_WAIT_2 状态的最大时间 net.ipv4.tcp_max_tw_buckets = 5000 这个参数表示操作系统允许 TIME_WAIT 套接字数量的最大值,如果超过这个数字,TIME_WAIT 套接字将立刻被清除并打印警告信息。该参数默认为 180000,过多的 TIME_WAIT 套接字会使 Web 服务器变慢 net.ipv4.ip_local_port_range = 1024 65000 定义 UDP 和 TCP 链接的本地端口的取值范围...

五月 3, 2017

NGINX 编译

适用于 CentOS、Debian 与 Ubuntu 系统进行编译安装与部署 安装 依赖库 在 CentOS 下执行安装 yum install gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel 如果是 Debian 或 Ubuntu 下执行安装 apt install build-essential libpcre3 libpcre3-dev autoconf zlib1g-dev 准备编译源码 Nginx 官网 下载需要的版本源码 Openssl 官网 下载版本 >=1.0.2 的版本源码 当今 **http2.0** 协议正在普及,因此如果使用该模块,用于编译的 **openssl** 源码包版本必须 `>=1.0.2`,**nginx** 推荐使用最新的稳定版本 将准备好的源码包分别解压,进入到 nginx 源码目录下 配置安装,默认下可以直接使用执行,但是很多模块是不包含在内的 ./configure 为了减少以后再次配置编译,以下这些配置都是我们常用到的 ./configure \ --error-log-path=/var/logs/nginx/error.log \ --http-log-path=/var/logs/nginx/access.log \ --sbin-path=/usr/sbin \ --pid-path=/run/nginx.pid \ --lock-path=/run/nginx.lock \ --http-client-body-temp-path=/var/nginx/client_temp \ --http-proxy-temp-path=/var/nginx/proxy_temp \ --http-fastcgi-temp-path=/var/nginx/fastcgi_temp \ --http-uwsgi-temp-path=/var/nginx/uwsgi_temp \ --http-scgi-temp-path=/var/nginx/scgi_temp \ --user=nginx \ --group=nginx \ --with-openssl=/root/openssl-1....

六月 13, 2016