zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    spring execution表达式用法
    spring2.0中使用Aspect方式进行AOP如何得到method对象
    mybatis if标签判断字符串相等
    Date和Timestamp区别
    正向代理与反向代理[转载]
    oracle中的对象创建及删除语句【原创】
    使用IDEA打war包并导出war包详细步骤
    Java面试题
    电脑上怎么登录几个微信(微信多开)
    批处理快速合并多分Excel文件并将指定列的数据去重复
  • 原文地址:https://www.cnblogs.com/iFanLiwei/p/13555366.html
Copyright © 2011-2022 走看看