一 常用功能
http代理和反向代理,负载均衡,web缓存
二 安装
yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel open openssl-devel 编译安装的安装环境
wget http://nginx.org/download/nginx-1.13.4.tar.gz 下载最新的nginx
tar zvxf nginx-1.13.4.tar.gz 解压文件
目录结构:
src :源代码 man :帮助文档 html :与启动有关的两个静态文件
conf:配置文件 auto: 大量脚本文件 与 configure 有关
configure 自动脚本程序 根据环境生成C代码 生成编译代码需要的Makefile文件
configure脚本 ./configure --prefix=/data/nginx/nginx --add-module=/data/nginx//nginx-rtmp-module-1.2.0 这里指定一一个第三方模块 和安装位置 这样我们得到了Makefile文件
make 编译
make install 安装
进入安装目录查看安装的文件
配置文件,日志文件,命令文件,页面文件
三 启动与关闭
nginx的服务器信号控制
nginx运行时 会保持一个主进程和一个或多个worker process工作进程 给主进程发信号就可以控制nginx
nginx -V 显示版本和配置信息
nginx 启动 直接执行 sbin/nginx
停止:快速停止,平缓停止
./sbin/nginx -s stop, quit, reopen, reload 或 kill TREM | INT | QUIT pid
四 nginx的配置
全局块:设置一些影响nginx服务器整体运行的配置指令
运行nginx的用户,允许worker_process数,日志文件目录,配置文件引入
events块:影响nginx服务器与用户的网络连接,对性能有较大影响
http块:服务器配置重要部分
server块:完成虚拟主机的配置 本虚拟主机的监听配置和本虚拟主机的名称或IP配置
location块:配请求字符串进行匹配,特定请求的特殊处理
具体配置:
1.user user [group] 指定nginx的运行用户[用户组] user nobody nobody 或者注释掉这句 所有用户都可以运行nginx
2.worker process nginx并发处理关键 worker_processes number | auto
3.pid file pid文件存放位置
4. error_log file stderr标准错误输出 | debug | info | notice | warn | error | crit | alert | emerg
5. include file 引用配置文件
6."惊群"问题 accept_mutex on | off 设置为开启的时候 将会对多个nginx进程接收连接进行序列号,防止多个进程连接争抢 只能在even 块中进行配置 默认开启
7.multi_accept on | off 是否允许接收多个网络连接 只能event块设置 默认关闭
8.nginx 提供多种事件驱动模型来处理网络消息 只能event块设置
use method; method 内容有:select poll kqueue epoll rtsig eventport /dev/poll
9.配置最大连接数 worker_connections number; 不能大于操作系统最大文件句柄数量 只能event块设置
10.定义mime-type(用于区分网络资源类型)
default_type mime-type;
11.服务日志 nginx服务应答日志
access_log path [format [buffer=size] ]
log_format name string ...
12. sendfile 方式传输文件
sendfile on | off 默认关闭 sendfile_max_chunk size ; 0 为无限大 每个worker process 每次调用sendfile传输的最大值
13.keepalive_timeout timeout[ header_timeout 报文keep-Alive 超时设置] 服务器连接保持时间 默认75s
14. keepalive_requests number; 默认100 单连接请求数上限
15. 配置网络监听
listen address[:port] [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size][deferred][accept_filter=filter][bind][ssl]
ip地址 端口 标识符 默认511连接挂起最大值 接受缓存 发送缓存 过滤
listen *:80| *:8000
16. server_name name; 多个用空格隔开 可以用正则表达式
server_name myserver.com www.myserver.com
17. location [=|~|~*|^~] uri {}
= uri 严格匹配 ~ 正则匹配 区分大小写
~* 正则匹配 不区分大小写 ^~ 不使用正则匹配 uri 进行编码处理
18. 配置请求根目录
root path; path 为 nginx查找资源的根目录
19. alias 改变location接收到的uri的请求路径 alias path
20. index file ..; 设置默认首页 多个文件使用空格分隔
error_page code ...[=response]uri 路径根目录为 nginx 的HTML目录
21. allow address | CIDR | all 多个IP 需要重复设置 CIDR地址 202.80.18.12/25 all 所有客户端
deny address |CIDR | all 禁止访问的客户端
22. 密码配置 auth_basic string | off
string 开启认证 并配置验证的指示信息
auth_basic_user_file file file为密码文件 支持明文或密码