Nginx概念

Nginx是一个高性能的HTTP和反向代理web服务器,特点是占用内存少,并发能力强。Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项针对网页的动静分离:静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理。在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式。

配置文件结构

Nginx主配置文件路径在user/local/nginx/conf/nginx.conf,Docker安装的话路径在etc/nginx/nginx.conf

全局快

配置服务器整体运行的配置指令,包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等


image-20200826104100663.png

event快

影响 Nginx 服务器与用户的网络连接,表示每个 work process 支持的最大连接数为 1024


image-20200826104129109.png

http块

Nginx服务器配置最频繁的部分:代理、缓存和日志定义等绝大多数功能和第三方模块的配置。每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机,每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

#http快
http {   
    #server块
    server{
      #全局server块:配置本虚拟机主机的监听配置和本虚拟主机的名称或IP配置
      listen 80;
      charset utf-8;
      server_name 192.168.17.102;
       
      #location快:指定不同的后缀名实现不同的请求转发
      location / {
         #代理地址
         proxy_pass http://192.168.17.102:8080; 
      }
}

常用命令

描述
systemd 保存,重新加载
systemctl daemon-reload 保存,重新加载
systemctl enable nginx.service 设置nginx服务开机自启动
systemctl start nginx.service 启动nginx服务
systemctl stop nginx.service 停止nginx服务
systemctl restart nginx.service 重启nginx服务e
systemctl reload nginx.service 重新读取nginx配置(这个最常用, 不用停止nginx服务就能使修改的配置生效)
/usr/local/nginx/sbin/nginx 路径启动,默认在
/usr/local/nginx/sbin/nginx -s reload 平滑重启
/usr/local/nginx/sbin/nginx -s stop 停止
/usr/local/nginx/sbin/nginx -s restart 重启

Nginx原理:master&worker

image-20200826000049083.png

image-20200826000414716.png

worker如何是工作的?

worker争抢式得到任务,然后通过反向代理连接Tomcat
image-20200826110947819.png

一个master和多个worker有什么好处?

  1. 每个woker进都是独立的进程,如果有其中的一个worker中断,其他worker会继续争抢,不会造成服务的终端,worker数和服务器的cput数相等是最为适宜的。

  2. 可以使用nginx -s reload热部署,理由nginx进行热部署操作。

  3. Nginx同redis类似,都采用了io多路复用机制,每个worker都是独立的进程,但都有一个主线程,通过异步非阻塞的方式来处理请求,即使成千上万个请求也不在话下。

连接数 worker_connection

当Nginx只访问静态资源时,只需要和worker进行1次交互,这种情况下的连接数为2个。当Nginx需要查询数据库时,还需要和Tomcat进行1次交互,这种情况下的连接数为4个。
image-20200826112251620.png

worker支持的最大并发数是什么?

worker的连接数是2个时,最大并发数:(worker_connection * worker_processes) /2;worker的连接数是4个时,最大并发数:(worker_connection * worker_processes) /4

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容