深刻理解Nginx之基本配置和升级(2)
3 Nginx基本配置
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvam9obl9mX2xhdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
3.1 时间模型
事件模型尾随着指令,它同意你网络机制。有一些參数对于应用程序的性能有重要的影响。
比方,以下的指令片段所看到的:
user nginx nginx;
master_process on;
worker_processes 4;
events {
worker_connections 1024;
use epoll;
}
[...]
配置了4个进程,每一个进程的处理事务的个数能够同一时候支持1024事件,使用epoll选择机制。
3.2 配置模型
Nginx配置模型是一个简单模型,它使用include指令来激活文件的包括功能,还包括organization 和inclusions。这个指令可以被插入到配置文件的不论什么位置,接受一个文件路径作为參数。比方,以下这些指令。
include /file/path.conf;
include sites/*.conf;
3.3 性能測试
測试性能的工具非常多,我在这里仅介绍三种測试server性能的工具。这三种工具是为压力測试而设计的,各有各的优势。
l Httperf: 它是由惠普开发的,一个相对著名的开源有用程序,只执行在Linux操作系统中。
l Autobench:Perl为Httperf的打包器,提升了測试机制和产生更细节的报告。
l OpenWebLoad:更小尺寸开源压力測试应用程序,它支持windows和linux平台。
更为具体的介绍,请查阅有关资料。比方,介绍Autobench,外文资料。
Autobench is a Perl script that makes use of httperf more efficiently—it runs
continuous tests andautomatically increases request rates until your server gets
saturated. One of the interestingfeatures of Autobench is that it generates a .tsv
report that you can open withvarious applications to generate graphs. You may
download the source code from theauthor's personal website: http://www.
xenoclast.org/autobench/. Onceagain, extract the files from the archive, run
make then make install.
Although it supports testing ofmultiple hosts at once, we will only be using the
single host test for moresimplicity. The command we will execute resembles the
httperf one:
[alex@example ~]$ autobench--single_host --host1 192.168.1.10 --uri1 /
index.html --quiet --low_rate20 --high_rate 200 --rate_step 20 --num_
call 10 --num_conn 5000--timeout 5 --file results.tsv
The switches can be configured asfollows:
• --host1: The website host name you wish to test
• --uri1: The path of the file that will be downloaded
• --quiet: Does not display httperf information on the screen
• --low_rate: Connections per second at the beginning of the test
• --high_rate: Connections per second at the end of the test
• --rate_step: The number of connections to increase the rate by
after each test
• --num_call: How many requests should be sent per connection
• --num_conn: Total amount of connections
• --timeout: The number of seconds elapsed before a request is
considered lost
• --file: Export results as specified (.tsv file)
3.4优雅升级Nginx
幸运地是,Nginx嵌入了一种机制。它同意你不中断执行时间的情况下切换二进制文件。假设你依照以下的步骤操作,你不会有请求数据的丢失。
- 用新的二进制文件代替老的Nginx二进制(默认情况下。/usr/local/nginx/sbin/nginx)文件。
- 找到Nginx主(master)进程pid。比方,使用命令ps x|grep nginx |grep master,或者查看在pid文件里的值。
- 发送一个USR2 (12)信号给master进程,使用kill –USR2 ***。用步骤2产生的pid值代替***。这将会通过又一次命名老的pid和执行新的二进制文件来初始化升级。
- 给老的master进程发送WINCH (28),kill –WINCH ***(同上),这将会着手于优雅地关闭老的工作进程。
- 确保全部的老的进程中断了,然后给老的进程发送QUIT信号,去kill –QUIT ***。
恭喜,这样就完毕Nginx的优雅升级。
深刻理解Nginx之基本配置和升级(2)的更多相关文章
- 《nginx 二》深入理解nginx的各项配置
Nginx应用场景 1.http服务器.Nginx是一个http服务可以独立提供http服务.可以做网页静态服务器. 2.虚拟主机.可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟机. 3. ...
- 深刻理解Nginx之Nginx完整安装
1. Nginx安装 1.1预先准备 CentOS系统下,安装Nginx的库包依赖. 安装命令例如以下: sudo yum groupinstall "DevelopmentTools& ...
- 《深入理解Nginx》阅读与实践(一):Nginx安装配置与HelloWorld
最近在读陶辉的<深入理解Nginx:模块开发与架构解析>,一是想跟着大牛练练阅读和编写开源代码的能力,二是想学学Nginx优秀的架构设计,三是想找一个点深入下Linux下网络编程的细节.侯 ...
- 2-4、nginx特性及基础概念-nginx web服务配置详解
Nginx Nginx:engine X 调用了libevent:高性能的网络库 epoll():基于事件驱动event的网络库文件 Nginx的特性: 模块化设计.较好扩展性(不支持模块动态装卸载, ...
- nginx php-fpm安装配置 CentOS编译安装php7.2
CentOS编译安装php7.2 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具体性能有多好,建议还是先尝试下再说.如果你是升级或新安装,那你首先需要考虑php7和程序是 ...
- 《深入理解Nginx》阅读与实践(三):使用upstream和subrequest访问第三方服务
本文是对陶辉<深入理解Nginx>第5章内容的梳理以及实现,代码和注释基本出自此书. 一.upstream:以向nginx服务器的请求转化为向google服务器的搜索请求为例 (一)模块框 ...
- 《深入理解Nginx》阅读与实践(二):配置项的使用
前文链接:<深入理解Nginx>阅读与实践(一):Nginx安装配置与HelloWorld HelloWorld的完成意味着已经踏入了nginx的大门,虽然很振奋人心,但在编写中仍有很多疑 ...
- nginx 2.基本配置
死磕nginx 2.基本配置 鉴于深入浅出的原理,我们先从一个简单的配置了解nginx的配置 1.一个典型配置 nginx的配置文件默认在nginx安装目录的conf二级目录下面,主配置文件为 ngi ...
- nginx初级安装配置
nginx初级安装配置 转自:(lykyl原创)http://www.cnblogs.com/lykyl/archive/2012/11/21/2781077.html 实验环境:系统 CENTOS5 ...
随机推荐
- python 数据的基本类型(字符串)
python 基础 ascii:字母,数字,特殊字符:1个字节(byte) 8个字位(bit)unicode: 16位两个字节,升级32个字节 4个字位utf-8:最少一个字节 8个表示. 英文 8字 ...
- vim下的autocmd
AUTOCMD *autocmd.txt* For Vim version 6.2. 最后修改: 2003年3月28日 VIM 参考手册 作者:Bram Moolenaar 翻译:Zimin<c ...
- BZOJ 1018 线段树维护图的连通性问题
思路: 我们可以搞一棵线段树 对于一段区间有6种情况需要讨论 左上右下.左上右上.左下右下.左下右上 这四种比较好维护 用左上右下举个例子吧 就是左儿子的左上右下&左区间到右区间下面有路&am ...
- linq的教程
http://www.cnblogs.com/lifepoem/archive/2011/12/16/2288017.html
- Super超级ERP系统---(3)基础信息管理--商品管理
商品管理主要包括商品的添加,修改,维护商品所在分类,单位,供应商,品牌,名称,价格,尺寸,规格等属性的维护. 1.商品添加 2.商品列表展示 商品列表界面左侧商品分类,右侧是商品信息
- 创建一个netcore2.0和angular的项目并运行起来
netcore2.0发布了,喜大普奔. 我们先下载SDK,请看张善友老师的这篇博客 http://www.cnblogs.com/shanyou/p/7363037.html 下载完之后 我用的vs2 ...
- P1284 三角形牧场
题目描述 和所有人一样,奶牛喜欢变化.它们正在设想新造型的牧场.奶牛建筑师Hei想建造围有漂亮白色栅栏的三角形牧场.她拥有N(3≤N≤40)块木板,每块的长度Li(1≤Li≤40)都是整数,她想用所有 ...
- 更换WordPress编辑器为TinyMCE Advanced
WordPress自带的编辑器功能很少,连更换字体样式大小都不行,没关系WordPress的插件中心插件非常多 在插件中心搜索TinyMCE Advanced 安装启用 还没完 点击设置 里面有丰富的 ...
- 7) 十分钟学会android--Activity的生命周期之暂停与恢复
在正常使用app时,前端的activity有时会被其他可见的组件阻塞(obstructed),从而导致当前的activity进入Pause状态.例如,当打开一个半透明的activity时(例如以对话框 ...
- 使用Windows上Eclipse远程调试Linux上的Hadoop
一.设置Eclipse运行用户 如果以与Hadoop运行用户名(比如grid)不同的用户运行Eclipse,则无法对Hadoop运行用户所属的文件进行管理,运行Map/Reduce程序也会报& ...