深刻理解Nginx之基本配置和升级(2)

3 Nginx基本配置

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:
[[email protected] ~]$ 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嵌入了一种机制。它同意你不中断执行时间的情况下切换二进制文件。假设你依照以下的步骤操作,你不会有请求数据的丢失。

  1. 用新的二进制文件代替老的Nginx二进制(默认情况下。/usr/local/nginx/sbin/nginx)文件。
  2. 找到Nginx主(master)进程pid。比方,使用命令ps x|grep nginx |grep master,或者查看在pid文件里的值。
  3. 发送一个USR2 (12)信号给master进程,使用kill –USR2 ***。用步骤2产生的pid值代替***。这将会通过又一次命名老的pid和执行新的二进制文件来初始化升级。
  4. 给老的master进程发送WINCH (28),kill –WINCH ***(同上),这将会着手于优雅地关闭老的工作进程。
  5. 确保全部的老的进程中断了,然后给老的进程发送QUIT信号,去kill –QUIT ***。

恭喜,这样就完毕Nginx的优雅升级。

时间: 2024-07-30 06:26:27

深刻理解Nginx之基本配置和升级(2)的相关文章

深刻理解Nginx之Nginx完整安装

1.   Nginx安装 1.1预先准备 CentOS系统下,安装Nginx的库包依赖.安装命令如下: sudo yum groupinstall "DevelopmentTools" sudo yum install pcre pcre-devel sudo yum install zlib zlib-devel yum install perl-ExtUtils-Embed sudo yum install openssl openssl-devel 1.2 安装 最重要的特性和基

深刻理解Nginx之Nginx与Python(1)

6 Python和Nginx 6.1 介绍FastCGI FastCGI(Fast Common Gateway Interface)是基于CGI上的改进,是CGI的一种演变产物.尽管目的是保持相同的,FastCGI在CGI上提供了重大的提升,通过建立起下面的原则. l  代替对于每个请求孵化一个新进程,FastCGI采用持久化进程,伴随着能够处理多个请求的能力. l  Web服务器和网关应用程序通过使用sockets比如TCP或者POSIXT 本地IPC sockets来交流.其结果是,它们的

nginx代理websocket配置

nginx正常只能代理http请求,如果想实现代理websocket的需求,需在请求中加入"Upgrade"字段,使请求从http升级为websocket. 配置如下: http {     map $http_upgrade $connection_upgrade {         default upgrade;         ''      close;     }       server {         ...           location /chat/ {

nginx一些参数配置详解

nginx的配置:    正常运行的必备配置:       1.user username [groupname];           指定运行worker进程的用户和组       2.pid /path/to/pidfile_name nginx的pid文件 3.worker_rlimit_nofile #;            一个worker进程所能够打开的最大文件句柄数:       4.worker_rlimit_sigpending #;            设定每个用户能够

nginx的记录配置心得

今天本来要去见自己喜欢的一个人的,唉,感觉自己的爱情龙卷风来了,来的很猛烈,我今天还把自己的胡子刮的很干净,悲催的是那位女士像木头一样,不知道她怎么想的,我发微信她也偶尔回复我,我真的很喜欢她,虽然刚认识没多久,这种感觉从来没有过,我每天都给她发很多消息,我现在都怕她烦了,会不会把我加黑啊,心里很矛盾,真的,找到一个自己喜欢的人和喜欢自己的人真的好难啊,好了悲催的心情就到这里吧. 我下面给大家带来的是NGINX的一些记录,因为可能要换工作了,面试的时候会问到,而且有个人老问我,他要给公司配置NG

Nginx之——其他配置

1. 日志切割 Nginx的日志切割有两种方式: 第一种是编写shell脚本,思路是:先把需要切割的日志重命名,然后使用kill -USR1 `cat PID`命令生成新的日志文件. 第二种是使用系统自带的logrotate工具来实现. 在/etc/logrotate.d/下新建一个配置文件,内容如下: /tol/app/nginx/logs/*.log {        #定义需要执行滚动的日志,名称支持通配符匹配. notifempty missingok rotate 30 daily d

nginx编译安装和平滑升级

1.1.1  本文档为nginx安装及配置文档,主要实现http反向代理功能:作用是将nginx作为前端服务器,通过访问规则代理转发至后端对应的tomcat服务器 部署环境: 系统版本:Linux version 2.6.32-431.el6.x86_64(`cat /proc/version`) 安装及配置: 1安装nginx依赖环境 安装pcre库 #wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.ta

LVS+Nginx(LVS + Keepalived + Nginx安装及配置)

(也可以每个nginx都挂在上所有的应用服务器) nginx大家都在用,估计也很熟悉了,在做负载均衡时很好用,安装简单.配置简单.相关材料也特别多. lvs是国内的章文嵩博士的大作,比nginx被广泛接受还要早7年,并且已经被红帽作为了系统内置软件,可谓很牛了.lvs相对于nginx来说配置上就要相对复杂一些. 但是,有时候我们会看到大牛们分享的经验里面是lvs+nginx作为负载均衡了,一直想不明白这是个什么道理. 为什么会出现两者被同时使用呢?其实,这要从两者的各自优势来说了. nginx用

初探nginx架构以及配置

1.nginx特性以及功能 2.nginx的架构及工作过程 3.nginx作为web服务器的配置 一.nginx特性以及功能 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用ngin