Nginx(一)概述
1 概述
Nginx (engine x) 是一个轻量级的高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP邮件服务。Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0 发布于 2004 年 10 月 4 日。
Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行,其特点是占有内存少,并发能力强。
备注:'web服务器'和'应用服务器'的区别-->前者是'静态'、后者是'动态'
web服务器:nginx、apache、openrestry
应用服务器:tomcat、weblogic'收费'、jetty、Jboss
2 工作模式
nginx 有两种工作模式:master-worker 模式和单进程模式
在 master-worker 模式下:有一个 master 进程和至少一个的 worker 进程
单进程模式:顾名思义只有一个进程
这两种模式有各自的特点和适用场景
master-worker:该模式下,nginx 启动成功后,会有一个 master 进程和至少一个的 worker 进程。
master '进程负责处理系统信号(control)',加载配置,管理 worker 进程(启动、杀死、监控、发送消息/信号等)。
worker '进程负责处理具体的业务逻辑',也就是说,对外部来说,真正提供服务的是 worker 进程
这种模式有以下优点
1. 稳定性高,只要还有 worker 进程存活,就能够提供服务,并且一个 worker 进程挂掉 master 进程会立即启动一个新的 worker 进程,保证 worker 进程数量不变,降低服务中断的概率。
2. 配合 linux 的 cpu 亲和性配置,可以充分利用'多核 cpu 的优势',提升性能-->重点!
3. 处理信号/配置重新加载/升级时可以做到尽可能少或者不中断服务(热重启-->不中断服务)-->重点!
单进程模式(了解)–>调试
单进程模式下,nginx启动后'只有一个进程','nginx 的所有工作都由这个进程负责'.由于只有一个进程,
因此可以很方便地利用 gdb 等工具进行调试。该模式'不支持 nginx 的平滑升级功能',任何的信号处理
都可能造成服务中断,并且由于是单进程,进程挂掉后,在没有外部监控的情况下,无法重启服务。
因此,该模式一般只在开发阶段和调试时使用,生产环境下不会使用'(了解)'.
3 主配置文件结构(简介)
user www www;
# (1)程序运行用户和组-->nginx
worker_processes auto;
# (2)启动进程,指定 nginx 启动的工作进程数量;建议按照 cpu 数目来指定,一般等于cpu核心数目
error_log /home/wwwlogs/nginx_error.log crit;
# (3)nginx全局错误日志
pid /usr/local/nginx/logs/nginx.pid;
# (4)主进程 PID 保存文件
worker_rlimit_nofile 51200;
# (5)文件描述符数量
# (6)事件区块开始-->events
events {
use epoll;
# (1)使用 epoll 模型,对于 2.6 以上的内核,建议使用 epoll 模型以提高性能
worker_connections 51200;
# (2)一个工作进程能处理的最大连接数量
}
# (7)http区块的开始
http {
# 解决中文-->后续补充
# server里面是一些网站优化参数
server {
# (1)具体的某一网站的配置信息
listen 80;
# (2)监听端口-->-->可以写成IP:Port的形式
root html;
# (3)网页根目录(/usr/local/nginx/html)
server_name www.wzj.com;
# (4)提供服务的域名主机名!
index index.html;
# (5)默认加载页面-->多个优先级!
access_log logs/access.log;
# (6)访问日志保存位置
location (.*)\.php$ {
# 用正则匹配具体的访问对象-->php结尾的
}
location {
# 跳转等规则-->rewrite
}
} # server的匹配结束
server {
# 虚拟主机;
}
} # http结束区块
注意事项:
1)注意配置文件中的结尾有';'作为结束~!(切记!)
2)每次实验修改完配置文件后需要'重启 nginx 才会生效'