Nginx介绍
-
特性:
模块化设计,较好的扩展性
高可靠性
支持热部署:不停机更新配置文件,升级版本,更换日志文件
低内存消耗: 10000个keep-alive连接模式下的非活动连接,仅
需要2.5M内存
event-driven,aio,mmap, sendfile -
基本功能:
静态资源的web服务器(图片, js, css, html, txt等静态资源)
http协议反向代理服务器(结合FastCGI/uWSGI/SCGI等协议)
pop3/imap4协议反向代理服务器
模块化(非DSO),如zip, SSL模块
- nginx的程序架构: master/worker结构
- 一个master进程:
负载加载和分析配置文件、管理worker进程、平滑升级 - 一个或多个worker进程
处理并响应用户请求 - 缓存相关的进程:
cache loader:载入缓存对象
cache manager:管理缓存对象
- 一个master进程:
编译安装
yum groupinstall "Development Tools" "Server Platform Development"
yum install pcre-devel openssl-devel zlib-devel
#安装工具包
useradd -r nginx
#添加用户
./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_dav_module --with-http_stub_status_module --with-threads --with-file-aio
#生成configure文件
make && make install
#安装
Nginx配置
- 主配置文件/etc/nginx/nginx.conf
- 子配置文件/etc/nginx/conf.d/*.conf
- 支持的mime类型/etc/nginx/mime.types
- 配置格式:
指令 值 [值2];
1、指令必须以分号结尾
2、支持使用配置变量
内建变量:由Nginx模块引入,可直接引用
自定义变量:由用户使用set命令定义
set variable_name value;
引用变量: $variable_name
- 配置文件结构
main block 主配置段,也即全局配置段,对http,mail都有效
event { <==事件驱动相关的配置
...
}
http { <==http/https 协议相关配置段
...
}
mail { <==mail 协议相关配置段
...
}
stream { <==stream 服务器相关配置段
...
}
全局配置段
user www www;
#进程用户
worker_processes 2;
#worker进程数
error_log /var/log/nginx-error.log info;
#错误日志文件
pid /var/run/nginx.pid;
#pid文件路径
events {
use kqueue;
worker_connections 2048;
#每个worker进程最大连接数
}
ngx_http_core_module
http {
...
... 各server的公共配置
server { 每个server用于定义一个虚拟主机
...
}
server {
...
server_name 虚拟主机名
root 主目录
alias 路径别名
location [OPERATOR] URL { 指定URL的特性
...
if CONDITION {
...
}
}
}
网友评论