默认启动Nginx时,使用的配置文件是: 安装路径/conf/nginx.conf 文件,可以在启动nginx的时候,通过-c来指定要读取的配置文件

常见的配置文件有如下几个:

  • nginx.conf:应用程序的基本配置文件
  • mime.types:MIME类型关联的扩展文件
  • fastcgi.conf:与fastcgi相关的配置
  • proxy.conf:与proxy相关的配置
  • sites.conf:配置Nginx提供的网站,包括虚拟主机

核心模块指令:error_log、include、pid、user、worker_cpu_affinity、worker_processes

1、error_log
  日志有6个级别:debug|info|notice|warn|error|crit
Nginx支持将不同的虚拟主机的日志记录在不同的地方,如下示例:

http{
error_log logs/http_error.log error;
  server{
      server_name one;
      access_log logs/one_access.log;
      error_log logs/one_error.log error;
}
  server{
    server_name two;
    access_log logs/two_access.log;
    error_log logs/two_error.log error;
}
}

注意:error_log off不是禁用日志,而是创建一个名为off的日志,要禁用日志,可以这么写:

error_log /dev/null crit;

2、include

你可以包含一些其他的配置文件来完成你想要的功能。

http {
#......
include mime.types;
include proxy.conf;
#......
}

3、其他指令

指令和使用环境

语法和描述

pid

语法:

文件路径:pid logs/nginx.pid

默认值:在编译时定义

用于配置nginx守护进程的pid文件路径

user

语法:

user username ;

user username groupname;

默认值:在编译时定义,若未定义,则使用nginx的master进程的用户和用户组

该指令将允许你定义用户和组别,nginx的worker进程将使用这些设置运行

worker_cpu_affinity

语法:

worker_cpu_affinity 1000 0100 0010 0001;

worker_cpu_affinity 10 10 01 01;

worker_cpu_affinity ;

默认值:无

该指令与woker_processes协同工作,它可以让你的worker进程影响cpu内核,数字序列与worker进程一样多。

如果你配置nginx使用3个worker进程,那么就会有3个数字序列(可以理解为3个块),对于双核cpu,那么每一个块将会有两位数字,worker_cpu_affinity 01 01 10

1、第一块(01)指第一个worker进程会受第二个内核影响

2、第二块(01)指第二个worker进程会受第二个内核影响

3、第三块(10)指第三个worker进程会受第一个内核影响

注意:worker_cpu_affinity只建议针对多核处理器而非超线程处理器

语法:worker_cpu_affinity cpummask [cpumask]

默认值:无

说明:该选项仅适用于Linux,该选项允许你将worker进程绑定到一个CPU上,通过调用sched_setaffinity() 例如:

worker_processes 4;

worker_cpu_affinity 0001 0010 0100 1000;

以上指令实现了将每一个进程绑定到一个cpu

worker_processes 2;worker_cpu_affinity 0101 1010;

以上指令实现了将第一个worker进程绑定到cpu0/cpu2

第二个worker进程绑定到cpu1/cpu3

这适用于超线程(HTT)cpu

worker_processes

语法:

worker_processes 4;

默认值:1

定义工作进程数量,nginx可以将请求的处理分到多个工作进程,如果属于cpu多核建议增加该值,如果一个进程由于慢的I/o操作被阻塞,那么进入的工作进程将转交给其他工作进程

注:根据负载自动调整worker进程设置:worker_processes auto;

nginx核心模块常用指令的更多相关文章

  1. Nginx主要模块常用指令说明

    核心模块(Core Modules): 主模块(Main Module):配置和服务器全局有关的一些参数,比如错误日志.进程.权限等 user worker_processes error_logsy ...

  2. Nginx核心配置文件常用参数详解

    Nginx核心配置文件常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于Nginx权威文档的话童鞋们可以参考Nginx官方文档介绍:http://nginx.org/ ...

  3. Nginx RTMP 模块 nginx-rtmp-module 指令详解

    译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解.指令Corertmp语法:rtmp { ... }上下文:根描述:保存所 ...

  4. nginx lua模块常用的指令

    lua_code_cache 语法:lua_code_cache on | off 默认: on 适用上下文:http.server.location.location if 这个指令是指定是否开启l ...

  5. Nginx核心模块内置变量

    本文根据Nginx官网整理了Nginx的ngx_http_core_module模块的内置变量,可与Apache做对比参考.随后做了一次测试观察各变量的值,并附上测试结果. 1.变量列表 $arg_n ...

  6. Nginx核心模块

    error_log 语法:error_log file [ debug | info | notice | warn | error | crit ]默认值:${prefix}/logs/error. ...

  7. 高性能Web服务器Nginx的配置与部署研究(7)核心模块之主模块的非测试常用指令

    1. error_log 含义:指定存储错误日志的文件 语法:error_log <file> [debug|info|notice|warn|error|crit] 缺省:${prefi ...

  8. Nginx核心流程及模块介绍

    Nginx核心流程及模块介绍 1. Nginx简介以及特点 Nginx简介: Nginx (engine x) 是一个高性能的web服务器和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 ...

  9. nginx -- handler模块(100%)

    handler模块简介 相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识.基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-ba ...

随机推荐

  1. 【Golang】嗅探抓包,解决线上偶现问题来不及抓包的情况

    背景 测试群里经常看到客户端的同学反馈发现了偶现Bug,但是来不及抓包,最后不了了之,最近出现得比较频繁,所以写个小脚本解决这个问题. 实现思路 实现的思路比较简单: 抓包 存日志 做日志管理 具体实 ...

  2. brew 切换国内的源

    切换到国内源 # 替换brew.git: cd "$(brew --repo)" # 中国科大: git remote set-url origin https://mirrors ...

  3. 【Phoenix】1、搭建 Phoenix 环境

    Ps: 需要注意的是,我学习的时候,Elixir 是 1.8.1的版本,而 Phoenix 是 1.4.1的版本,对于其他版本,不一定正确. 1.安装 Phoenix 之前,先安装 Elixir. 2 ...

  4. CSS — 隐藏滚动条,依旧可以滚动

    公司的系统,在PC端可以管理我们的公众号,在发布模块页面时有一个预览功能,呈现页面在手机端的样式. 做法很简单,一会就完成了,但是在预览内容过长时手机外框会有一个滚动条,影响美观,于是就想把它去掉,有 ...

  5. ThinkPHP6.0学习之项目安装页面的开发

    在我们做一个项目的时候,如果是自己用或者是给同行用的话往往不需要做一个安装页面的,但是如果是将项目给一些不怎么会操作服务器,不怎么会程序的人用的时候,我们就需要一个安装页面来帮助他们更好的将项目安装好 ...

  6. kotlin中匿名对象

    open class MyClass { private fun too()=object { var x : String ="x" } fun publictoo()=obje ...

  7. android java.util.Date和java.util.sql中Date的区别

    1.将java.util.Date 转换为 java.sql.Date java.sql.Date sd; java.util.Date ud; //initialize the ud such as ...

  8. java批量修改指定目录下的文件名

    package io; import java.io.File; import java.io.IOException; /** * @Auther: Code * @Date: 2018/9/9 1 ...

  9. C++ STL swap_range

    #include <iostream>#include <vector>#include <deque>#include <algorithm> usi ...

  10. spring常用模式--模板模式

    引入:这几天在看一本讲spring源码的书<SPRING技术内幕>里面在讲加载配置文件的时候,可以有不同的加载方式,如根据文件系统目录加载配置文件(FileSystemXmlApplica ...