1、nginx的工作模式
master/worker工作模式:
一个master进程:
负载加载和分析配置文件、管理worker进程、平滑重启升级等。
一个或多个worker进程
处理并响应用户请求
缓存相关的进程:
cache loader:载入缓存对象
cache manager:管理缓存对象
nginx的特性:异步、非阻塞、事件驱动
并发请求处理:通过epoll/select
文件IO:高级IO sendfile,异步,mmap
nginx模块:高度模块化,但其模块早期不支持DSO机制。不过近期版本支持动态装载和卸载
模块分类:
核心模块:core module
标准模块:
HTTP modules:
Standard HTTP modules
Optional HTTP modules
Mail modules
Stream modules
3rd party modules
2、nginx功用:
静态的web资源服务器(图片服务器,或js/css/html/txt等静态资源服务器)
结合FastCGI/uwSGI/SCGI等协议反向代理动态资源请求。
http/https协议的反向代理
imap4/pop3协议的反向代理
tcp/udp协议的请求转发
3、安装nginx
编译安装:
yum安装rpm包
nginx是在yum的epel源中,直接一键yum install nginx即可
4、简单介绍nginx的组成部分:
1)配置文件的组成部分:
主配置文件:/etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf
fastcgi,uwsgi,scgi等协议相关的配置文件
mime.types:支持的mime类型。mime表示多用途互联网邮件扩展
2)主配置文件的配置指令:
directive value [value2.....]; nginx配置文件中每一条指令以分号结尾。
注意:
(1):指令必须以分号结尾
(2):支持使用配置变量
内建变量:由nginx模块自带的变量,可直接引入
自定义变量:由用户使用set命令定义;
set variable_name value;
引用变量:$varable_name
3)查看安装时编译配置参数:
nginx -V
nginx -s stop | reload | stop:传递给nginx信号参数
nginx -c file:指定配置文件。
4)主配置文件结构:
main block:主配置端,也是全局配置段; event { ....... } 事件驱动相关的配置。 http { ..... } http/https协议相关的配置段; mail {......} stream { ..... } http协议相关的配置结构 http { ... ...:各server的公共配置 server { .... }:每个server用于定义一个虚拟主机 server { ...... listen server_name root alias location [OPERATOR] url { location用来定义用户对某个资源的访问控制。 .... if condition { ...... } } } }
5)案例演示:
先说明一下:
注意这个下划线表示匹配所有的主机的80端口。所以我们使用IP直接访问的话,默认匹配的是/usr/share/nginx/html这个目录下的网页。
现在我们定义一个虚拟主机,放在/etc/nginx/conf.d/目录下。
接下来在/var/nginx/html目录下编辑index.html默认主页:
然后在windows的hosts文件里面添加映射:
最后使用浏览器访问:
如果使用ip访问的话,匹配的是nginx服务的默认主页(在/etc/nginx/nginx.conf配置文件中定义)。