返回顶部

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  

 

posted @ 2020-04-21 17:11  Zcb0812  阅读(269)  评论(0编辑  收藏  举报