Nginx 介绍及日常管理的详解

这篇文章主要介绍了Nginx 介绍及日常管理的详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
Nginx 介绍及日常管理的详解

Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.中国大陆使用nginx网站用户有:新浪、网易、 腾讯等。本文简要描述了Nginx的基本特性及其配置文件的简单描述。

一、Nginx的工作进程

1、一个主进程: 主进程的主要目的是读取和评估配置,启动、终止及维护工作进程以及创建、绑定及关闭套接字。 2、多个工作进程: 工作进程处理web请求。nginx的采用了基于事件的模型和操作系统相关的机制,有效地分配工作进程之间的请求。 负责解析http协议;提供反向代理及过滤功能;nginx任何能完成的其它任务; 工作进程的数量被定义在配置文件中,可以使用配置文件定义固定的数量,或根据可用的CPU内核数实现自动调整其数量。3、缓存加载器(cache loader): 检查缓存存储中的缓存对象; 使用缓存元数据建立内存数据库; 接收、传入并处理来自客户端的连接;4、缓存管理器(cache manager): 缓存的失效及过期检验;5、基于配置文件定义Nginx的工作方式 nginx的工作方式及其模块的工作是在配置文件中确定的。 缺省情况下,其配置文件为nginx.conf,通常位于/usr/local/nginx/conf, /etc/nginx, 或者/usr/local/etc/nginx目录下。
二、Nginx特性

1、Nginx的模块化特性 Nginx服务器与Apache httpd类似,采用了基于模块化的构建方式。 在安装部署Nginx服务器时,一定要遵循:最小化模块安装,以节省无用模块对Nginx的性能影响及占用系统资源。 a、从功能上划分 Nginx核心模块:包括Nginx的内核模块和事件驱动模块 http服务器模块:这类模块包括三类模块,即HTTP的内核模块和标准模块以及可选的HTTP模块 b、从发布模块的方式来划分 官方模块 第三方模块 c、从模块的可选项来划分 必选模块(Main和Events) 可选模块2、Nginx功能特性 模块化设计、较好扩展性 高可靠性 master–>worker 低内存消耗 10000个keep-alive连接在Nginx仅消耗2.5MB 支持热部署 不停机而更新配置文件、更换日志文件、更新服务器程序版本 基本功能: 静态资源的web服务器,能缓存打开的文件描述符; http, smtp, pop3协议的反向代理服务器,缓存、负载均衡; 支持FastCGI (fpm); 模块化,非DSO机制,过滤器zip,SSI及图像大小调整; 支持SSL; 非阻塞、事件驱动、一个master生成一个或多个worker, 每个worker响应n个请求; 扩展功能: 基于名称和IP的虚拟主机; 支持keepalive 支持平滑升级 定制访问日志 ,支持使用日志缓冲区提高日志存储性能 支持url rewrite 支持路径别名 支持基于IP及用户的访问控制 支持速率限制,支持并发数限制 Nginx的基本架构: 一个master进程,生成一个或多个worker 事件驱动: epoll, kqueue, /dev/poll (event ports) 消息通知:select, poll, rt signals 支持sendfile, sendfile64 支持AIO 支持mmap 模块类型: 核心模块 Standard HTTP modules Optional HTTP modules Mail modules 3rd party modules http://www.iis7.com/a/lm/vpsdq/

三、Nginx的启动、停止、配置文件重新装载

1、启动 直接使用命令启动,示例,-c后面跟上配置文件路径及名字,如果忽略-c,则使用缺省的配置文件 # /usr/sbin/nginx -c /etc/nginx/nginx.conf 使用服务方式启动,示例如下 # service nginx start2、启动后的常用管理语法 nginx -s signal 其中signal可以为下列值 stop — fast shutdown quit — graceful shutdown reload — reloading the configuration file reopen — reopening the log files3、nginx的停止 stop — 快速停止,粗暴模式,不再接受新请求,已经处理的请求被强制关闭,示例如下 # /usr/sbin/nginx -s stop quit — 优雅停止,不再接受新请求,等待当前的工作进程完成当前的服务器请求,并停止nginx # /usr/sbin/nginx -s quit 通过服务方式关闭nginx # service nginx stop4、配置文件重新装载 reload — 重新载入配置文件 nginx配置文件的任意变更,不会被立即生效,需要使用重载命令或重启nginx 一旦主进程接收到重新加载配置的信号,它检查新的配置文件的语法正确性,并尝试应用新的配置。 否则,主进程回滚所做的更改,并继续使用旧的配置文件工作。 旧的工作进程,接收命令关闭, 停止接受新的连接,并继续服务于当前的请求,直至当前请求服务完毕后,旧的工作进程退出 进程信号可以被发送到nginx,通过Linux/Unix的 kill工具来杀死进程。 在这种情况下的带有进程ID的信号被直接发送到一个进程。 缺省情况下,nginx的主进程PID被写入到位于/usr/local/logs或者/var/run目录的nginx.pid文件。 例如,如果主进程ID是1628,发送nginx正常关机的退出信号,则执行: kill -s QUIT 1628 通过服务方式重载配置文件 # service nginx reload

原文地址:https://www.cnblogs.com/ngnntds03/p/10476974.html

时间: 2024-10-06 20:10:57

Nginx 介绍及日常管理的详解的相关文章

Spring事务管理(详解+实例)

写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解 1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是要么都执行要么都

Linux下nginx编译安装教程和编译参数详解

这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # yum install pcre* //如过你已经装了,请跳过这一步 2.安装openssl 需要ssl的支持,如果不需要ssl支持,请跳过这一步 复制代码代码如下: # yum install openssl* 3.gzip 类库安装 复制代码代码如下: yum install zlib zlib-

(转)Spring事务管理(详解+实例)

文章转自:http://blog.csdn.net/trigl/article/details/50968079 写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解 一.初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱.  比如你去ATM机取1000块钱,

Linux内核中的jiffies及其作用介绍及jiffies等相关函数详解

在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构struct timeval{time_t tv_sec; /***second***/susecond_t tv_usec;/***microsecond***/}到底microsecond是毫秒还是微秒?? 1秒=1000毫秒(3个零),1秒=1000 000微秒(6个零),1秒=1000 000 000纳秒(9个零),1秒=1000 000 000

Linux系统进程管理命令详解

Linux管理进程的最好方法就是使用命令行下的系统命令.Linux下面的进程涉及的命令有at, bg, fg, kill, crontab, jobs, ps, pstree, top, nice, renice, sleep, nohup. 1.at命令:定时运行命令 作用:at命令在指定时刻执行指定的命令序列. 格式: at [-V] [-q x] [-f file] [-m] time atq [-V] [-q x] atrm [-V] [-q x] job- batch [-V] [-f

ssh环境搭建与管理(详解)

ssh环境搭建与管理 (详解) 实验环境 服务端:xuegod-63   IP:192.168.1.63 客户端:xuegod-64   IP:192.168.1.64 客户端普通用户:ceshi  密码:123456 安装好扫描软件rpm -ivh /mnt/Packages/nmap-5.21-4.el6.x86_64.rpm 实验目标 1:SSHD服务介绍 2:SSHD服务安装配置 3:两Linux服务器之间数据拷贝 4:SSHD服务作用: 实验步骤 1:搭建环境 1):网桥模式 2):v

Nginx+Tomcat的服务器端环境配置详解

这篇文章主要介绍了Nginx+Tomcat的服务器端环境配置详解,包括Nginx与Tomcat的监控开启方法,需要的朋友可以参考下 Nginx+tomcat是目前主流的Javaweb架构,如何让nginx+tomcat同时工作呢,也可以说如何使用nginx来反向代理tomcat后端均衡呢?直接安装配置如下: 1.Java JDK安装: #下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u25-Linux-x64.tar.gz ? 1 tar -xzf jdk-7u25-linux

Android内存管理机制详解 (zhuan)

http://www.2cto.com/kf/201212/175786.html 与windows内存区别 在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然.这是Linux内存管理的一个优秀特性,在这方面,区别于 Windows的内存管理.主要特点是,无论物理内存有多大,Linux都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能.而Windows是只在需要内存时,才为应用程序分配内存,

Windows下Nginx Virtual Host多站点配置详解

Windows下Nginx Virtual Host多站点配置详解 此教程适用于Windows系统已经配置好Nginx+Php+Mysql环境的同学. 如果您还未搭建WNMP环境,请查看 windows7配置Nginx+php+mysql教程. 先说明一下配置多站点的目的:在生产环境中,如果将系统所有代码文件都放在公开目录中,则很容易被查看到系统源码,这样是很不安全的,所以需要只公开index.php的入口文件目录.而同一个服务器中,可能运行多个系统,这样就必须公开多个入口文件目录,以便用不同的