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 ...
随机推荐
- redhat quay 集成镜像构建
redhat quay 可以类似docker hub 那样进行镜像的构建,以下是一个学习,但是在测试中发现流程是可以通的,但是 quay 在对于dockerfile 内容处理上有bug,造成build ...
- three.js 添加环境光
var ambient = new THREE.AmbientLight(0xffffff);//环境光 scene.add(ambient);
- 洛谷 p3870 开关 线段树模板
这两天学了很长时间于是做了一道水题 我就用了模板,就连任何优化都没有 就AC了,复杂度也很爆炸10个点1500多毫秒 这个题就是把lazy[]改成记录下修改的次数,每次修改的时候mod 2,因为反过来 ...
- centos 升级openSSH7.81
1.下载相关依赖包 [root@Log ~]# yum install -y gcc openssl-devel pam-devel rpm-build 2.下载安装包 wget http://ftp ...
- nginx1.16+php7.39配置笔记
vim /etc/nginx/conf.d/default.conf 修改php相关配置如下: location ~ \.php$ { root /usr/share ...
- Computer-Hunters——凡事预则立
Computer-Hunters--凡事预则立 冲刺时间安排 时间 前端计划完成工作 11.6 完成用户注册登录界面,个人信息界面,以及热点资讯界面 11.7-11.8 匹配界面,电脑猎场界面 11. ...
- Oracle_12541错误和ora-12514错误
ORA-12541: TNS无监听程序错误 在oracle安装目录(E:\app\Administrator\product\instantclient_12_1\NETWORK\ADMIN)下查找l ...
- ASP.NET Core消息队列RabbitMQ基础入门实战演练
一.课程介绍 人生苦短,我用.NET Core!消息队列RabbitMQ大家相比都不陌生,本次分享课程阿笨将给大家分享一下在一般项目中99%都会用到的消息队列MQ的一个实战业务运用场景.本次分享课程不 ...
- HP Client Security Manager
HP Client Security Manager - SP77916 操作系统:windows 10 64位 HP Client Security Manager - SP77916.ex ...
- TopCoder入门
TopCoder入门 http://acmicpc.info/archives/164?tdsourcetag=s_pctim_aiomsg 本文根据经典的TC教程完善和改编.TopCoder:htt ...