1 安装gcc环境
yum install gcc-c++
2 安装PCRE库,用于解析正则表达式
yum install -y pcre pcre-devel
3 zlib压缩和解压缩依赖
yum install -y zlib zlib-devel
4 ssl安全的加密的套接字协议层,用于http安全传输,也就是https
yum install -y openssl openssl-devel
tar -zxvf nginx-1.16.1.tar.gz
mkdir /var/temp/nginx -p
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
(如6的方法执行失败请百度其他方法)
make
make install
./nginx
master 进程 主线程
worker 进程 工作进程
ps -ef | grep nginx 查看进程
进入nginx.conf 修改 worker_processes 2; 工作进程数为2
修改完保存退出
../sbin/nginx -t 检查配置文件是否正确
重启nginx
在查看的时候worker变成了两个
master 管理 worker 进程 相当于老板底下的员工
master接受操作人发送的指令,读取并且验证核心文件的有效性,就是上面的命令-t,接收到指令分发给其他的工作进程,可以不需要中转服务可以平滑的热重启,热加载,worker 会链接很多请求去响应数据和我们后端服务进行通信接收到master指令之后可以重启,等,加入操作人此时发送停止的请求让worker去执行 worker1 worker2 没有链接会关闭,worker3处理请求会等请求处理完成之后会关闭
假设配置了多个worker 创建成功之后 准确的说是fork 底层是C语言开发的,有一个master主进程fork了三个worker请求,当客户端有请求进入到nginx的时候worker如何和相应的请求进行连接呢? 有一个客户端,发送请求之后有三个worker,三个worker要去抢,怎么去抢 他有一个控制锁 accept_mutex 谁抢到和谁建立连接
sendfile代表文件快速传输的打开之后文件传输速度变快
tcp_nopush是和sendfile一起使用的当sendfile打开tcp_nopush才能使用
tcp_nopush是当数据包到达一定大小才去发送
include imooc.config 导入命令,当nginx里的server{}方法过多的时候可以在nginx配置文件同级目录下建一个文件然后导入,新建的