nginx 学习笔记-完整版

第一步下载nginx

http://nginx.org/en/download.html

nginx 学习笔记-完整版_第1张图片

第二步下载完nginx 上传到liunx服务器

第三步 安装依赖环境

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

4 解压需要注意 解压后得到的源码,源码需要编译后才能安装

tar -zxvf nginx-1.16.1.tar.gz

5 编译之前先创建nginx临时目录 如果不创建 在启动ngixn的过程中会报错

mkdir /var/temp/nginx -p

6 在nginx目录 输入如下命令进行配置 目的是为了创建makefile文件

./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的方法执行失败请百度其他方法)

nginx 学习笔记-完整版_第2张图片

7 make 编译

make

 8 安装

make install

安装成功通过whereis nginx 来搜索一下nginx的安装目录,进入nginx安装目录

9进入sbin目录启动nginx

./nginx

停止 ./nginx - s stop

重新加载 ./nginx -s reload

nginx 学习笔记-完整版_第3张图片

nginx进程模型解析 

 

 master 进程 主线程
 worker 进程 工作进程

ps -ef | grep nginx 查看进程

进入nginx.conf 修改 worker_processes  2; 工作进程数为2

修改完保存退出

../sbin/nginx -t 检查配置文件是否正确


重启nginx

在查看的时候worker变成了两个

nginx 学习笔记-完整版_第4张图片

master 管理 worker 进程 相当于老板底下的员工 

nginx 学习笔记-完整版_第5张图片

 master接受操作人发送的指令,读取并且验证核心文件的有效性,就是上面的命令-t,接收到指令分发给其他的工作进程,可以不需要中转服务可以平滑的热重启,热加载,worker 会链接很多请求去响应数据和我们后端服务进行通信接收到master指令之后可以重启,等,加入操作人此时发送停止的请求让worker去执行 worker1 worker2 没有链接会关闭,worker3处理请求会等请求处理完成之后会关闭

worker 抢占机制

nginx 学习笔记-完整版_第6张图片

假设配置了多个worker 创建成功之后 准确的说是fork 底层是C语言开发的,有一个master主进程fork了三个worker请求,当客户端有请求进入到nginx的时候worker如何和相应的请求进行连接呢? 有一个客户端,发送请求之后有三个worker,三个worker要去抢,怎么去抢 他有一个控制锁 accept_mutex 谁抢到和谁建立连接

nginx 学习笔记-完整版_第7张图片

nginx.conf 核心配置文件详解 

nginx 学习笔记-完整版_第8张图片

sendfile代表文件快速传输的打开之后文件传输速度变快 

tcp_nopush是和sendfile一起使用的当sendfile打开tcp_nopush才能使用

tcp_nopush是当数据包到达一定大小才去发送

 nginx 学习笔记-完整版_第9张图片

nginx 学习笔记-完整版_第10张图片

 include imooc.config 导入命令,当nginx里的server{}方法过多的时候可以在nginx配置文件同级目录下建一个文件然后导入,新建的

你可能感兴趣的:(nginx,java)