共计 1791 个字符,预计需要花费 5 分钟才能阅读完成。
Nginx 是由俄罗斯第二大访问网站公司于 2004 年开发的一款高效的 web 服务器和反向代理服务器开源软件。它相比于 apache 有占用资源少,并发量大,轻量级等优点。
工作模式:单进程模式和多进程模式。
1:单进程模式,Nginx 启动运行两个进程,一个以 root 身份运行,一个以指定用户身份运行。后一个进程处理用户的请求,并且是单线程的工作方式。
2:多进程模式,启动运行多个进程,一个以 root 身份运行,其他以指定用户身份运行,并且每个进程都有多个线程。
Nginx 的模块分为三大类:Handlers 模块 Filter 模块和 Proxy 模块.Nginx 内核模块非常轻量级,主要用来处理极简单的工作,内核将请求交给其他模块处理。Nignx 所有的模块都静态编译,在启动时自动加载。而 apache 则是在配置文件中指定需要加载的模块,在处理相应的请求时再将对应的模块加载。
Nginx 单线程仍然比 apache 多进程多线程处理请求快的原理:首先,apache 处理请求时为一个线程对应一个请求,对应比为 1:1,这样当请求量非常大时,基本上内存资源全部被占用,当客户端网络带宽受限时,服务器会非常的慢。而 Nginx 采用的是事件驱动模型,即将请求分为阻塞型请求和非阻塞型请求,主线程只处理非阻塞型请求。当遇到阻塞型请求时,使用 epoll 函数将该请求转移。这样做的好处是主线程可以一直处理响应快的请求,使服务器处理请求的速度大大提高。
Nginx 可以用来做负载均衡。通过指令 upstream{} 在主配置文件中设置。负载均衡的后台服务器调度算法有:
轮询调度: 即按分发请求的时间先后来对请求进行转发。
wigth 权值调度:按照各个服务器设置的权值进行请求分发。
Ip_hash 基于 IP 地址的 hash 函数调度:将每个 Ip 地址求 hash 函数值对应相应的服务器来对请求进行分发。
url_hash 基于 url 地址的 hash 函数调度:将 url 求 hash 函数对应服务器对请求进行分发。
Nginx 主配置文件的指令:
event{} 主要设置工作模式
http{} 对 Nginx 进行全局设置。
Server{} 对具体的服务器进行设置
location{} 对相应的 url 进行细粒度配置。
安装 Nginx:
下载 Pcre 软件包,nginx 软件包和 Md5 软件包。
解压 pcre 库和 md5 库. 解压 nginx 包 在 configure 配置时将解压的目录在配置参数中指定。
make && make install.
————————————– 分割线 ————————————–
CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm
使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm
搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm
CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm
CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm
CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm
Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm
Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm
————————————– 分割线 ————————————–
Nginx 的详细介绍 :请点这里
Nginx 的下载地址 :请点这里