Nginx系列--02基本配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx系列--02基本配置相关的知识,希望对你有一定的参考价值。

一. 配置文件结构

1. nginx配置目录

YUM安装的Nginx其配置文件目录为/etc/nginx。Nginx的主配置文件为/etc/nginx/nginx.conf,在主配置文件中通过include 包含/etc/nginx/conf.d/*.conf所有配置。在配置目录下有fastcgi, uwsgi,scgi等协议相关的配置文件,以及支持的Mime类型。

2. 配置文件中指令配置

配置格式:directive value [ value... ]
注意:(1)指令一定要以分号结尾。(2)支持使用变量,一种是模块引入的内建变量;一种是自定义变量,使用 set var_name value 定义,使用$var_name 调用。

3. 主配置文件结构

Nginx的配置是分段的,对应指令只能放在对应的配置段中,否则就会报错。

main block:主配置段,也即全局配置段;
event {
    ...
}:事件驱动相关的配置;
http {
    ...
}:http/https 协议相关的配置段;
mail {
    ...
}:用于配置imap4/pop3协议的反向代理
stream {
    ...
}:用于配置TCP/UDP的请求转发

4. HTTP协议相关的配置

http {
    ...
    ...:各server的公共配置
    server {
        ...
    }:每个server用于定义一个虚拟主机;
    server {
        ...
        server_name 
        root
        alias
        location [OPERATOR] URL {
            ...
            if CONDITION {
                ...
            }
        }
    }
}

二. 配置详解

1. main段配置指令

正常运行必备指令

(1)user

    语法:user user_name [group]
    默认:user nobody nobody
    上下文:main

指定了work进程运行时使用的用户,如果group省略同user。需要注意的是,worker进程运行的身份决定了他们是否能够写入某些目录,nginx缓存目录/var/cache/nginx,日志目录/var/log/nginx,默认站点目录/usr/share/nignx/html,这些目录的属主和属组都是root,有可能导致没有权限,需要我们修改权限。

(2)pid
指定存储nginx主进程号码的文件路径,nginx的主进程是一个会话进程,所以只要杀死主进程,工作进程也会down掉,所以我们关掉nginx只需要kill掉保存在此文件中的pid对应的进程即可。需要注意的是只要我们主进程不down,工作线程down了,主线程会重启一个work进程。YUM安装中PID的配置为/var/run/nginx.pid。
技术分享图片

(3)include file;
指明包含进来的其它配置文件片断,可以放在任何配置段中。

__(4)load_module__ file;
指明要装载的动态模块

性能优化相关的配置

__(1)worker_processes__ number | auto;
worker进程的数量;通常应该为当前主机的cpu的物理核心数,或者为物理核心数减一。auto表明是物理核心数.
技术分享图片

(2)worker_cpu_affinity cpumask ...;
cpumask的使用为: 00000001 如果有八颗CPU,表明一worker进程会运行在第零颗CPU上。00000010:表明第一颗CPU依次类推。
测试:
不绑定CPU
技术分享图片
绑定CPU
技术分享图片

__(3)worker_priority__ number;
指定worker进程的nice值,值越小优先级越高,范围为[-20,20]
技术分享图片

(4)worker_rlimit_nofile number;
单个worker进程打开文件数量上限。在CentOS上非管理员账号只能使用1024个文件。而Linux哲学思想一切皆文件,每一个socket就是一个文件,所以此值往往需要调大。

事件驱动相关的配置:

events {
...
}

__(1)worker_connections__ number;
每个worker进程能够打开的最大并发连接数。
nginx最大并发数=worker_processes * worker_connections

(2)use method;
指明并发连接请求的处理方法;默认使用epoll,使用nginx作为web服务器,如果不使用此命令有意义吗?

__(3)accept_mutex__ on | off
处理新请求的方法,on表示worker进程轮流处理,off则会通知所有的worker进程,谁抢到谁处理。

说明

本篇梳理了nginx mian段的配置指令,接下来的一篇将会梳理http段的基本配置、基于IP和端口虚拟主机,以及混合型虚拟主机。

以上是关于Nginx系列--02基本配置的主要内容,如果未能解决你的问题,请参考以下文章

nginx.conf 忽略了 nginx-ingress 配置映射片段

全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段

Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code(代码片段

linux学习:Nginx--常见功能配置片段与优化-06

SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端Eureka 服务信息Eureka 发现管理Eureka 安全配置Eureka-HA(高可用) 机制Eur(代码片段

Nginx配置文件详细介绍