1.得到最新版本的Nginx服务器javascript
Nginx三种版本:1 开发版 Development 2稳定版 Stable version 3 过时版本 Legacy versionshtml
2.安装nginx准备,linux安装须要先对源代码进行编译。java
GCC编译器,全程为(GNU Compiler Collection),编译源代码使用linux
Automake 工具,用来完成自动建立Makefile的工做。Makefile是make命令的配置文件nginx
另外,不须要使用autoconf工具,Nginx软件的自动脚本不是用autoconf生成的,是做者手工编写的。c++
pcre库 正则表达式 用来支持rewrite模块正则表达式
zlib库,支持gzip模块,压缩相关缓存
openssl库,支持ssl模块(ssl安全套接层)安全
相关命令 服务器
yum -y install gcc gcc-c++
yum -y install automake
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install open openssl-devel
复制地址连接 下载 wget http://nginx.org/download/nginx-1.12.2.tar.gz
3.编译安装 Nginx
解压Nginx归档文件 tar xf nginx-1.12.2.tar.gz
生成Makefile 文件 ./configure --prefix=/Nginx
make
make install
4.Nginx启动中止控制
控制信号
kill [SIGNAL] [PID]
kill [SIGNAL] [nginx.pid路径]
帮助 ./nginx -h
启动 ./Nginx 无任何输出表明启动成功
关闭 方法一:./Nginx -g TERM | INT | QUIT (TERM|INT 快速中止,QUIT用平缓中止)
方法二:kill TERM|INT|QUIT '/Nginx/logs/nginx.pid'
方法三:kill -9 | SIGKILL '/Nginx/logs/nginx.pid' 不建议这样使用
平滑重启 ./nginx -g HUP [-c newConfFile]
kill HUP ‘/Nginx/log/nginx.pid’
HUP 平滑重启的信号
平滑升级
步骤1,./Nginx/nginx -p newInstallPath 切换Nginx的安装路径为新的
步骤2,./sbin/Nginx -g USR2 USR2用于平滑升级 用ps -ef |grep nginx 查看新的Nginx是否启动正常
或者 kill USR2 ‘/Nginx/logs/nginx.pid'
步骤3,./sbin/Nginx -g WINCH 用于平滑中止旧的服务信号
或者 kill WINCH ‘/Nginx/logs/nginx.pid’
5.nginx配置
全局块 做用域是nginx服务器全局 包括 用户(组),容许生成的worker process 数,Nginx PID存放路径 日志存放路径和类型 以及配置文件的引入。
event块 主要影响Nginx服务器与用户的网络链接。经常使用的入 是否开启序列化,是否容许同时接收多个网络链接,选取哪一种时间模型处理链接请求,每一个worker process 能够同时支持的最大链接数。
HTTP块 代理 缓存 日志定义 等绝大多数功能和第三方模块的配置均可以放在这个模块中
server块 和虚拟主机的概念有着密切的联系,
location块 基于Nginx服务器接受请求字符串,对除了虚拟主机之外的字符串进行匹配,对特定请求进行处理。
具体
配置运行Nginx服务器用户(组)
user user [group]
user 制定Nginx服务器的用户
group 可选项 制定能够运行Nginx服务器的用户组
只有被设置的用户或用户组才能启动nginx
若是但愿全部的用户均可以启动Nginx进程,一种方法是将此行注释掉,一种是将用户和用户组设置为nobody
配置容许生成worker process数
worker_processes number |auto
number 制定Nginx最多能够产生的worker process 数
auto Nginx自动检测
配置Nginx进程的PID存放路径
pid file
配置错误日志的存放路径
error_log file | stderr [debug|info|notice|warn|error|crit|alert|emerg]
stderr (输出到标准错误输出)
配置文件的引入
include file
设置网络链接的序列化
应对 惊群 效应
accept_mutex on |off
on 为开启状态 只能在event块中使用
将会对多个Nginx进程接受链接进行序列化,防止多个进程对链接争抢
ps 如何解决惊群效应,在接受端的内部设置一个变量,维护是否能够接受的状态。
设置事件驱动模型的选择
use method
method 有 select poll kqueue epoll rtsig /dev/poll eventport
配置最大链接数
worker_connections number
number 默认值是512
定义MIME_Type
include mime.types;
default_type application/octet-stream;
types{
text/html html htm shtml;
image/gif gif;
application/x-javascript js;
audio/midi mid midi kar;
video/3gpp 3gpp 3gp;
}
自定义服务日志
access_log path [format[buffer=size]]
log_format name string
例子
access_log logs/access.log combined;
log_format combined '$remote_addr - [$time_local] $request '
'$status $body_bytes_sent $http_referer'
'$http_user_agent'
配置容许sendfile方式传输文件
sendfile on |off
设置为on表示启动高效传输文件的模式。sendfile可让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据。若是这个参数不开启,
会先在用户空间(Nginx进 程空间)申请一个buffer,用read函数把数据从磁盘读到cache,再从cache读取到用户空间的buffer,
再用write函数把数据从用户空间的buffer写入到内核的buffer,最后到tcp socket。开启这个参数后可让数据不用通过用户buffer。
sendfile_max_chunk size
size 为0为无限制
配置连接超时时间
keepalive_timeout timeout [header_timeout]
timeout 服务器对链接的保持时间 默认值为75
例子:keepalive_timeout 120s 100s 服务器保持链接的时间设置为120s,发给用户端的应答报文头部中的keepAlive域的超时时间设置为100s。
单次请求数上线
keepalive_requests number;
限制用户经过某一个链接想Nginx服务器发送的请求次数。
配置网络监听(配置指令复杂,使用简单)
配置监听哪一个端口
listen *:80 | *:8080
基于名称的虚拟机配置
server_name name
基于IP的虚拟主机配置
配置location块
配置请求的根目录
更改location的URI
alias path
设置网页的默认首页
index
设置网页的错误页面
error_page 404 /404.html
基于IP配置Nginx的访问权限
基于密码配置Nginx的访问权限