------------恢复内容开始------------

Nginx配置文件
主配置文件结构:四部分
main block:主配置段,既全局配置段,对Http,mail都有效
event{

}事件驱动配置

http {
...
...各server的公共配置
server{
每个server用于定义一个虚拟主机

}
server{

...
server_name 虚拟主机名
root 主目录
alias 路径别名
location[operator] URL {

...
if condition }

}

} http/https协议相关配置

mail {

} mail协议相关配置

stream {

} stream服务器相关配置
##################################################################################################################################################
nginx全局配置介绍
user nginx;
以nginx身份来运行程序,并且user指令只能放到全局位置。

worker_processes auto;

性能相关设置,worker进程数量设置 ,worker进程数和物理cpu核数一样 使用lscpu可以查看(胖小8个worker进程因为cpu是8核的)
注意#worker进程不需要太多,第一次请求session缓存到第一个worker线程,第二次请求可能跑下一个worker上去,使用epoll模式 一个worker进程可以处理多个请求。

worker_cpu_affinity auto [cpumask] ; 提高缓存命中率

CPU MASK : 00000001 : 0号CPU 第一颗CPU
00000010 : 2号CPU 第二颗CPU 看数字1在整个数字的位置 从右边开始数
10000000 : 8号CPU 第八颗CPU

#注意:CPU也有缓存,让worker和CPU绑定 这样CPU缓存可以一直对这个worker进程使用,提高缓存命中率。

worker_cpu_affinity(亲缘性) 001 0010 0100 1000;

worker_priority number

指定worker进程nice的值,设定worker进程的优先级: [-20,20]
#注意 最大就是19,设置成20也是19.

worker_rlimit_nofile number

#注意 worker进程所能够打开的文件数量上限 ,如65535
error_log /var/log/nginx/error.log;

pid /run/nginx.pid;

pid 存放master进程号的, 并且程序停止nginx.pid文件被删除。

#程序在运行的时候删除nginx.pid文件会导致使用nginx -s stop的时候报错,报找不到/run/nginx.pid文件所以停不了应用程序。

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

include指令:指明包含进来的其他配置文件片段
load_module file
模块加载配置文件:/usr/share/nginx/modules/*.conf
指明要装载的动态模块路径:/usr/lib64/nginx/modules
#现在加载模块主要有include在全局配置里面设置了
events {
worker_connections 1024;
}

ab 命令
watch -n0.5 "ps axo pid,cmd,psr |grep nginx|grep -v grep|grep -v master"

1、worker_rlimit_nofile number
worker进程所能够打开的文件数量上限 ,如65535

2、worker_connections number
每个worker进程所能够打开的最大并发连接数

3、总最大并发数: worker_rlimit_nofile * worker_connections

4、user method
指明并发连接请求的处理方法,默认自动选择最优方法。
use epoll;
5、accept_mutex on|off 互斥
处理新的连接请求的方法; on指由各个worker轮流处理新请求,off指每新请求的到达都会通知(唤醒)所有的worker进程,但只有一个进程可以获得连接,造成
"惊群",影响性能。

调试配置方面

1、daemon on|off
on在后端运行,off在前端运行。
#适合调试测试环境使用

2、master_process on|off
是否启用worker进程

http配置介绍

1、 ngx_http_code_module
default_server 设定为默认虚拟主机
ssl 限制仅能够通过ssl连接提供服务
backlog=number 超过并发连接数后,新的请求进入后援队列的长度
rcvbuf=size 接受缓冲区大小 #根据内存大小设置
sndbuf=size 发送缓冲区大小 #根据内存大小设置

#注意
1. 基于port:
listen PORT: #指令监听在不同的端口

2.基于ip的虚拟主机
listen IP:PORT; #IP地址不同

3.基于hostname
server_name fqdn; #指令指向不同的主机名
#支持通配符和正则表达式

tcp_nodelay no|off

在keepalived模式下的连接是否启用TCP_NODELAY
当为off时,延迟发送,合并多个请求后在发送
#提升服务器性能,但是客户体验不好
当为on时,不延迟发送,来一个请求立即发送
#客户体检非常好,但是性能会有所损耗

sendfile on|off
on : 在内核当中直接封装报文然后直接发送到内核的socket buffer(socket缓冲区当中,然后直接由内核到网卡直接发送出去,正常请求要内核到用户空间再有用户空间到内核的网卡上无形当中又白跑了一圈)

off: 默认情况

server_tokens on|off|build|string

是否在响应报文的server首部显示Nginx版本

------------恢复内容结束------------

Nginx学习(二)的更多相关文章

  1. nginx学习(二):nginx显示默认首页解析过程

    本篇文章分析下nginx 显示默认首页的过程 如下图所示 查看config文件: # 如果忘记nginx 安装目录.使用下面命令查看 [root@XXX]# whereis nginx nginx: ...

  2. Nginx学习系列二Linux下Nginx实现负载均衡

    关于在本地虚拟机(VMware 14)下安装Linux同时安装Nginx,请参考Nginx学习系列之搭建环境 1.启动Nginx 在Nginx安装成功的前提下,启动Nginx 已root模式登陆(权限 ...

  3. Nginx系列0:Nginx学习历程

    Nginx学习历程 一.初识Nginx 1.Nginx适用于哪些场景 (1)静态资源服务 通过本地文件系统提供服务 (2)反向代理服务 Nginx的强大性能 缓存 负载均衡 (3)API服务 Open ...

  4. Nginx学习总结

    2017年2月23日, 星期四 Nginx学习总结 Nginx是目前比较主流的HTTP反向代理服务器(其企业版提供了基于TCP层的反向代理插件),对于构建大型分布式web应用,具有举足轻重的作用.简单 ...

  5. [转帖]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件

    nginx学习,看这一篇就够了:下载.安装.使用:正向代理.反向代理.负载均衡.常用命令和配置文件 2019-10-09 15:53:47 冯insist 阅读数 7285 文章标签: nginx学习 ...

  6. emberjs学习二(ember-data和localstorage_adapter)

    emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...

  7. Nginx学习回顾总结 部分:

    21:46 2015/11/9Nginx学习回顾总结进程间通信,近似于socket通信的的东西:才发现这种通信并不是很难,并不是我想象的那样很多内容,新领域,入门只是几个函数的使用而已.以前猜过是这样 ...

  8. ReactJS入门学习二

    ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...

  9. TweenMax动画库学习(二)

    目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            Tw ...

  10. Hbase深入学习(二) 安装hbase

    Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...

随机推荐

  1. JS的ES7支持

    1.指数运算符(幂): ** 2.Array.prototype.includes(value) : 判断数组中是否包含指定value console.log(2**4); let arr = [2, ...

  2. selenium--单选下拉列表

    下拉选择 from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get(&q ...

  3. C语言博客作业2019-04--数组

    0.展示PTA总分(0----2) 展示3张关于"数组题目集"分数截图. 1.本章学习总结(2分) 1.1 学习内容总结 整理数组这章学习主要知识点,必须包含内容有: 数组中如何查 ...

  4. Docker是什么?可以用Docker做什么

    其实可以把Docker理解成一个专门为应用程序与执行环境的轻型虚拟机. Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了 ...

  5. [.Net,C#]三类资源:流对象Stream,字节数组byte[],图片Image

    三类资源:流对象Stream,字节数组byte[],图片Image 关系:Stream<=>byte[],byte[]<=>Image Stream 与Image相互转化的媒介 ...

  6. sqlcode与sqlerrm的区别

    sqlCode:是数据库操作的返回码,其中0--成功:-1--失败:100--没有检索到数据. sqlerrm:是数返回指定错误代码的错误信息. 在一个内在的异常中,SQLCODE返回Oracle错误 ...

  7. Jenkins绑定git

    1,新建任务

  8. spring 事件使用

    1.事件定义 import lombok.Data; import org.springframework.context.ApplicationEvent; /** * 事件定义,这里监听MsgMe ...

  9. jmeter 生成不重复的手机号

    String account = "${__time(yyyyMMdd,)}"+UUID.randomUUID().toString().split("-")[ ...

  10. MODBUS 数据格式相关记录

    串口通讯格式: 串口通讯可以分为同步通讯(Synchronous)和异步通讯(Asynchronous).同步通讯时有一根时钟信号,数据格式中没有起始位和停止位:异步通讯中没有时钟信号,数据格式中包含 ...