此页内容

Nginx

路白榆

806字约3分钟

2024-04-21

Nginx

简介

Nginx是什么 => 高性能的、HTTP和反向代理的Web服务器


核心概念

正向代理

在客户端配置代理服务器,通过代理服务器去访问因特网,这种行为称为正向代理


常用命令

前提:先进入目录/usr/sbin

1.查看版本号

./nginx -v

2.启动nginx

./nginx

3.关闭nginx

./nginx -s stop

4.重新加载nginx

./nginx -s reload

配置文件

所在位置:/etc/nginx

名称:nginx.conf


nginx配置文件主要由三部分组成

全局块

从配置文件开始到events块之间的内容,主要设置一些影响Nginx服务器整体运行的配置指令

如:worker_processes 1; => 值越大,Nginx可以支持的并发处理量越大


events块

events块涉及的指令主要影响Nginx服务器与用户的网络连接

如:worker_connections 1024 => 表示支持的最大连接数


http块

Nginx服务器中配置最频繁的部分

可再分为

  1. http全局块
  2. server块

常见配置

1.配置反向代理

打开nginx.conf文件,在location中添加以下配置

location / {
    proxy_pass  IP地址;
}

2.配置包含指定路径的反向代理

location ~ /user/ {          # 路径包含user则进行转发
    proxy_pass  IP地址; 
}

3.配置负载均衡

upstream myserver {
    server   ip地址   # 可以是同个IP不同端口
    server   ip地址
}

location / {
    proxy_pass  http://myserver;    # 这里//后面的名称需与上面对应,可以任意取
}

服务器分配策略

1.轮询(默认)

2.weight(权重,默认为1) => 根据每个服务器的权重来分配

配置

upstream myserver {
    server   ip地址  weight=1    # 可以是同个IP不同端口
    server   ip地址  weight=1
}

3.ip_hash => 根据访问IP的hash结果来分配

配置

upstream myserver {
    ip_hash;
    server   ip地址   # 可以是同个IP不同端口
    server   ip地址  
}

4.fair(第三方)=> 根据后端服务器的响应时间来分配

配置

upstream myserver {
    server   ip地址   # 可以是同个IP不同端口
    server   ip地址  
    fair;
}

原理

内部实现:master + worker

master:管理者,只有一个

worker:实际工作者,有多个


工作机制:

客户端请求首先到达master,然后master通知worker有请求到达,然后多个worker通过争抢的方式去抢夺请求,抢到的worker则接着执行请求的一系列流程。


设置多少个worker合适

worker的数量设置等于CPU数最好


一个master + 多个worker 的好处

1.可以使用nginx -s reload热部署,利于nginx进行热部署操作

2.每个worker是独立的进程,当一个worker出现问题时,其他worker可继续参与争抢,实现请求过程,不会造成服务中断


worker支持的最大并发数有多少

1.如果每个请求都是静态请求,不需要访问数据库,则worker支持的最大并发数为 worker的最大连接数/2

2.如果每个请求需要访问数据库,则worker支持的最大并发数为 worker的最大连接数/4