zoukankan      html  css  js  c++  java
  • 03 nginx.conf 核心参数

    nginx.conf main 段 核心参数:

    其中,worker_rlimit_nofile 设定的值不一定能达到这个标准,linux 本身最大能达到 65535 ,尽量的写大是为了充分利用服务器的性能,

    ulimit -n  查看用户级的限制(一般是1024,向阿里云华为云这种云主机一般是65535)

    与cpu 绑定的好处:减少切换cpu 消耗的资源 ,虽然worker子进程不可能一直拥有该cpu ,但是,确可以只能被某个固定的cpu 调度,这样cpu 的缓存就不会失效了,

    调整worker 子进程的优先级:

    其中 worker_priority -10 意思是 :120 -10 ,这样就保证了 worker 子进程尽可能的被cpu 调度,

    worker_shutdown_timeout 可以防止一些恶意的攻击,(因为可能会故意 不断开服务器连接,严重影响nginx 的性能,)

    timer_resolution time:

    了解这个参数 先要看下 服务器是如何处理 客户端的请求:

    timer_resolution 就是用于控制 用户态 和 内核态之间切换的频率的, 如果要求不高,该数值设大一些,

    注:用户态和 内核态之间的切换很耗资源,

    守护进程:

    nginx 默认情况即是on,默认运行在后台,[   用的很少   ]

    user nginx nginx;
    worker_processes  auto;
    
    worker_rlimit_nofile 12500; 
    worker_rlimit_core 50M;
    working_directory /opt/nginx112/tmp;
    worker_cpu_affinity 0001 0010 0100 1000;
    worker_priority -10;
    worker_shutdown_timeout 5s;
    timer_resolution 100ms; 
    
    
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
        keepalive_timeout  65;
    
        server {
            listen       80;
            server_name  www.paixiaosen.xyz;
    
            location / {
                root   html/server1;
                index  index.html index.htm;
            }
        }
        server {
            listen       80;
            server_name  www.666kaoyan.com;
    
            location / {
                root   html/server2;
                index  index.html index.htm;
            }
        }
    
    
    }
    main 段的配置

    nginx.conf   events段 核心参数:

    1,use 参数:

    2,worker_connections 参数:

    每一个子进程最大的并发数,但是,Linux最大打开句柄数 为65535 ,所以,它是为了尽量提高利用,提高性能,

    3,accept_mutex 参数:

    负载均衡锁

    4,accept_mutex_delay 参数:

    如果上面的accept_mutex 设置为了on ,它才有意义,

    它是上面的锁 分发给worker 进程,如果此时这个进程正在繁忙,此时,delay 时间就有用了,accept_mutex 会将它分给其他的worker 子进程,

    5,multi_accept 参数:

    通常情况,worker 进程只会接受一个Http 请求,打开之后,就可以同时 接受多个 http 请求,它对性能影响不大

    补: lock_file 参数:

    它要用在 main 段中,

    记录负载均衡锁 分配的记录,

    user nginx nginx;
    worker_processes  auto;
    
    worker_rlimit_nofile 12500; 
    worker_rlimit_core 50M;
    working_directory /opt/nginx112/tmp;
    worker_cpu_affinity 0001 0010 0100 1000;
    worker_priority -10;
    worker_shutdown_timeout 5s;
    timer_resolution 100ms; 
    lock_file logs/nginx.lock;
    
    events {
        worker_connections  15000;
    	accept_mutex on;
    	accept_mutex_delay 100ms;
    	multi_accept on;
    
    
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
        keepalive_timeout  65;
    
        server {
            listen       80;
            server_name  www.paixiaosen.xyz;
    
            location / {
                root   html/server1;
                index  index.html index.htm;
            }
        }
        server {
            listen       80;
            server_name  www.666kaoyan.com;
    
            location / {
                root   html/server2;
                index  index.html index.htm;
            }
        }
    
    
    }
    events 段 核心参数

    nginx.conf   http 段 核心参数 (重中之中):

    server_name 指令用法:

    它用在 http 的 server 字段中,  

    语法结构:

    四种写法:

    server_name www.666kaoyan.com

    server_name *.666kaoyan.com

    server_name www.666kaoyan.*

    server_name ~^www.666kaoyan.*$  (正则表达式的匹配,  ~表示正则表达式的匹配 )

    server_name 指令用法优先级:

    所以上述如果请求是 www.nginx.org 的话,请求的就是第一个,

    root 和 alias 的用法 区别:

    root  如果在http 端声明,那么会对所有的server 生效,如果在server 生效,会对所有的location 生效,

    其共同点 和 区别:

    例子:

    因为root 是会叠加的,所以,正常情况下,我们一般root 指定 应该为:

    这时对应的磁盘映射是: /opt/nginx/html/picture/1.jpg !!!

    注意事项:

    location 的基础用法 :

    语法结构:

    location 的优先级 :

    例子:

    深入理解 location 的url 结尾的反斜线 /  :

    如果不带/ ,nginx 先把 test 当成目录找,在里面找是否有index.html ,如果test 目录不存在,会把 test 当成文件找,找到后返回其内容,

    而如果带了/ ,就不会把test 当成文件找了,

    stub_status 模块:

    它可以给我们提供nginx 监控页面的模块,可以在web页面来查看整个nginx 的运行状态,

    语法结构:

    示例:

    注:此url 应该写的复杂一些,以免让别人访问到,

    效果示例:

    对我们有参考价值的是:active connections 和 readding  writing waiting  

    注: 默认该模块不在内置里,所以要使用需要编译的时候给它编译进去,--with-http_stub_status_module  

  • 相关阅读:
    IPython notebook(Jupyter notebook)指定IP和端口运行
    spark-2.2.0安装和部署——Spark集群学习日记
    安装Scala-2.11.7——集群学习日记
    hadoop2.7.3在centos7上部署安装(单机版)
    Centos7下面配置静态IP
    css 3列
    css 日历组件(浮雕效果)
    if(!document.getElementById) return false; JS里这句是什么意思?
    网页中图片路径错误时显示默认图片方法
    css3 图片放大缩小闪烁效果
  • 原文地址:https://www.cnblogs.com/zach0812/p/12745931.html
Copyright © 2011-2022 走看看