NGINX

Nginx

Nginx服务基础

Nginx是一款高性能轻量级 的反向代理Web服务器,用于 HTTP、 HTTPS、SMTP、POP3和IMAP 协议。它实现非常高效的反向代理、负载平衡,它可以处理2-3万并发连接数,官方监测能支持5万并发。

Nginx优点

  • 跨平台、配置简单,非阻塞、高并发连接: 处理2-3万并发连接数,官方监测能支持5万并发

  • 内存消耗小:开启10个nginx才占150M内存 ,nginx处理静态文件好,耗费内存少

  • 内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器,重新将请求提交到其他的节点上。

  • 节省宽带:支持GZIP压缩,可以添加浏览器本地缓存

  • 稳定性高:宕机的概率非常小

  • 接收用户请求是异步的

Nginx主要应用场景

  • http服务器

Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

  • 虚拟主机

可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟机。

  • 反向代理,负载均衡

当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

  • nginz 中也可以配置安全管理

比如可以使用Nginx搭建API接口网关,对每个接口服务进行拦载

Nginx 和 Apache 的差异

  • Nginx 是异步非阻塞进程,多个连接可以对应一个进程,Apache 是同步多进程,一个连接对应一个进程

  • Nginx 可以实现无缓存的反向代理加速,提高网站运行速度

  • Nginx 的性能和可伸缩性不依赖于硬件,Apache 依赖于硬件

  • Nginx 支持热部署,启动速度迅速,可以在不间断服务的情况下,对软件版本或者配置进行升级

  • Nginx 高度模块化,编写模决相对简单,且组件比 Apache 少

  • Nginx 高并发下能保持低资源低消耗高性能

  • Nginx 配置简洁,Apache 配置复杂

  • Nginx 是基于事件的web服务器,Apache 是基于流程的web服务器

  • 轻量级,Nginx 比 Apache 占用更少的内存及资源

  • 静态处理,Nginx 静态处理性能比 Apache 高

同步和异步

  • 同步:一个服务的完成需要依赖其他服务时,只有等待被依赖的服务完成后,才算完成,这是一种可靠的服务序列。要么成功都成功,失败都失败,服务的状态可以保持一致
  • 异步:一个服务的完成需要依赖其他服务时,只通知其他依赖服务开始执行,而不需要等待被依赖的服务完成,此时该服务就算完成了。被依赖的服务是否最终完成无法确定,因此它是一个不可靠的服务序列。

阻塞与非阻塞

  • 阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能够执行其他业务,函数只有在得到结果之后才会返回。
  • 非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

编译安装Nginx服务

  1. 关闭防火墙
Linux 复制代码
systemctl stop firewalld
setenforce 0
  1. 安装依赖包

( Nginx的配置及运行需要pcre、zlib、openssl等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。)

Linux 复制代码
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#各程序作用解释如下:  
gcc                #C语言的编译器
gcc-c++            #C++的编译器
make               #源代码编译器(源代码转换成二进制文件)
openssl-devel      #加密,证书认证
pcre-devel         #perl的接口开发包,提供正则表达式  
zlib-devel         #提供压缩功能
  1. 创建运行用户、组

( Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限。)

bash 复制代码
[root@localhost ~]#useradd -M -s /sbin/nologin nginx
- M 不创建家目录 
- s /sbin/nologin 不允许登录用户
  1. 编译安装Nginx

(将nginx-1.18.0.tar.gz安装包放入/opt下解压)

bash 复制代码
[root@localhost opt]#cd nginx-1.18.0/
[root@localhost nginx-1.18.0]#./configure \
> --prefix=/usr/local/nginx \    #指定nginx的安装路径
> --user=nginx \                    #指定用户名
> --group=nginx \                  #指定组名 
> --with-http_stub_status_module
#启用 http_stub_status_module 模块以支持状态统计
bash 复制代码
[root@localhost nginx-1.18.0]#make -j 2 && make install
- j 可选择几核编译,看cpu设置
js 复制代码
[root@localhost nginx]#ll
总用量 4
drwxr-xr-x. 2 root root 4096 8月  23 17:29 conf       #nginx的配置文件
drwxr-xr-x. 2 root root   40 8月  23 17:29 html       #nginx的网页根目录
drwxr-xr-x. 2 root root    6 8月  23 17:29 logs      #nginx的日志文件
drwxr-xr-x. 2 root root   19 8月  23 17:29 sbin      #nginx的管理程序
  1. 创建软连接

(将nginx的可执行文件做个软链接,放入环境变量PATH的目录下,让系统识别nginx的操作指令。)

js 复制代码
[root@localhost nginx-1.18.0]#ln -s /usr/loacl/nginx/sbin/nginx /usr/local/sbin
#让系统识别nginx的操作命令

检查、启动、重启、停止 nginx服务

  1. 检查:nginx -t

- 启动:

停止:kill -3

diff 复制代码
-   重载(不重启的情况下,重新读取配置文件):

kill -1
kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx

相关推荐
糖葫芦君4 小时前
TRPO-trust region policy optimization论文讲解
人工智能·算法·机器学习·强化学习
蓝海星梦5 小时前
【强化学习】深度解析 DAPO:从 GRPO 到 Decoupled Clip & Dynamic Sampling
人工智能·深度学习·自然语言处理·强化学习
deephub1 天前
多智能体强化学习(MARL)核心概念与算法概览
人工智能·机器学习·强化学习·多智能体
奔跑的花短裤2 天前
ubuntu安装Isaac sim4.5与强化学习使用
linux·ubuntu·机器人·强化学习·isaac sim·isaac lab
victory04312 天前
大模型后训练强化学习理论基础应该看李宏毅强化学习还是看斯坦福CS234
强化学习
人工智能培训3 天前
如何大幅降低大模型的训练和推理成本?
人工智能·深度学习·大模型·知识图谱·强化学习·智能体搭建·大模型工程师
清蒸鳜鱼3 天前
【系列跟学之——强化学习】基础篇
机器学习·语言模型·强化学习
WhereIsMyChair4 天前
VERL的损失函数计算方式
强化学习
蜡笔小新..5 天前
从零学习 RL :初识强化学习
人工智能·强化学习·rl
QiZhang | UESTC6 天前
RL4LLM
大模型·强化学习·rl4llm