Nginx学习(二)
------------恢复内容开始------------
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学习(二)的更多相关文章
- nginx学习(二):nginx显示默认首页解析过程
本篇文章分析下nginx 显示默认首页的过程 如下图所示 查看config文件: # 如果忘记nginx 安装目录.使用下面命令查看 [root@XXX]# whereis nginx nginx: ...
- Nginx学习系列二Linux下Nginx实现负载均衡
关于在本地虚拟机(VMware 14)下安装Linux同时安装Nginx,请参考Nginx学习系列之搭建环境 1.启动Nginx 在Nginx安装成功的前提下,启动Nginx 已root模式登陆(权限 ...
- Nginx系列0:Nginx学习历程
Nginx学习历程 一.初识Nginx 1.Nginx适用于哪些场景 (1)静态资源服务 通过本地文件系统提供服务 (2)反向代理服务 Nginx的强大性能 缓存 负载均衡 (3)API服务 Open ...
- Nginx学习总结
2017年2月23日, 星期四 Nginx学习总结 Nginx是目前比较主流的HTTP反向代理服务器(其企业版提供了基于TCP层的反向代理插件),对于构建大型分布式web应用,具有举足轻重的作用.简单 ...
- [转帖]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
nginx学习,看这一篇就够了:下载.安装.使用:正向代理.反向代理.负载均衡.常用命令和配置文件 2019-10-09 15:53:47 冯insist 阅读数 7285 文章标签: nginx学习 ...
- emberjs学习二(ember-data和localstorage_adapter)
emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...
- Nginx学习回顾总结 部分:
21:46 2015/11/9Nginx学习回顾总结进程间通信,近似于socket通信的的东西:才发现这种通信并不是很难,并不是我想象的那样很多内容,新领域,入门只是几个函数的使用而已.以前猜过是这样 ...
- ReactJS入门学习二
ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...
- TweenMax动画库学习(二)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ...
- Hbase深入学习(二) 安装hbase
Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...
随机推荐
- Android 开发基础入门篇: 生成带有签名的apk安装包
说明: 软件默认生成的安装包没有签名,现在手机安装APP的时候要求,安装包必须有签名才可以 默认生成的APK位置 现在生成带有签名的APK 我一般放到当前工程根目录,然后文件名字 key 有些时候需要 ...
- Socket网络编程——C++实现
本代码可直接使用 根据TCP/IP三次握手,实验时可使用两台电脑,或者打开两个终端模拟通信. 服务器端: #include <iostream> #include <windows. ...
- RedHat linux服务器安装elasticsearch且设置公网访问
0. 首先需要安装jdk,因为elasticsearch是Java写的,默认需要Java环境,且安装elasticsearch 7.x需要使用jdk 1.8或更高版本 1. 执行以下命令,创建elas ...
- Java 并发系列之四:java 多线程
1. 线程简介 2. 启动和终止线程 3. 对象及变量的并发访问 4. 线程间通信 5. 线程池技术 6. Timer定时器 7. 单例模式 8. SimpleDateFormat 9. txt ja ...
- java基础 面向对象 & 接口 & 抽象类
从语法层面而言,接口和抽象类的区别如下: 1.抽象类可以提供成员方法的实现细节,而接口中只能存在抽象方法(默认 public abstract)2.抽象类中的成员变量可以是多种类型,而接口中的成员变量 ...
- Java基础之十六 数组
数组:可以创建并组装它们,通过使用整型索引值访问它们的元素,并且它们的尺寸不能改变. 16.1 数组为什么特殊 数组与其他种类的容器之间的区别有三方面:效率,类型和保存基本类型的能力. 数组是一种效率 ...
- centos7.2上安装CDH5.16.2及Spark2【原创】
背景:我自己的电脑配置太低,想在centos操作系统上安装CDH5.1.2并配置集群,我去阿里云上买了3台按流量计费的阿里云服务器. 大家一定要注意,配置,购买的阿里云服务器不要太低了.建议:3台2核 ...
- 《Linux就该这么学》培训笔记_ch00_认识Linux系统和红帽认证
<Linux就该这么学>培训笔记_ch00_认识Linux系统和红帽认证 文章最后会post上书本的笔记照片. 文章主要内容: 认识开源 Linux系统的种类及优势特性 认识红帽系统及红帽 ...
- 《Linux就该这么学》培训笔记_ch09_使用ssh服务管理远程主机
<Linux就该这么学>培训笔记_ch09_使用ssh服务管理远程主机 文章最后会post上书本的笔记照片. 文章主要内容: 配置网络服务 远程控制服务 不间断会话服务 书本笔记 配置网络 ...
- [EXP]CVE-2019-0604 Microsoft SharePoint RCE Exploit
研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的. 剑桥大学的研究结果,当单词的字母顺序颠倒时,你仍旧可以明白整个单词的意思.其中重要的是:只要单词的第一个字母和 ...