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

相关推荐
阿里云大数据AI技术1 天前
开发者博客|在阿里云 PAI 平台实现规模化的机器人感知强化学习
人工智能·阿里云·机器人·强化学习·nvidia
deephub2 天前
2026 年面向 LLM 的 RL方法总结:从 PPO 到 DPO 到 GRPO,再到多智能体 RL
人工智能·大语言模型·强化学习·多智能体
Robot_Nav2 天前
深度学习与强化学习面试八股文知识点汇总
人工智能·深度学习·强化学习
盼小辉丶3 天前
PyTorch强化学习实战(9)——深度Q学习
pytorch·深度学习·强化学习
我爱C编程4 天前
基于Sarsa强化学习的异构蜂窝网络中基站休眠算法matlab仿真
网络·matlab·强化学习·sarsa·异构蜂窝网络·基站休眠
熊猫钓鱼>_>5 天前
强化学习与决策优化:从理论到工程落地的完整指南
人工智能·llm·强化学习·rl·马尔可夫·mdp·决策过程
盼小辉丶7 天前
PyTorch强化学习实战(8)——Q学习详解与实现
pytorch·深度学习·强化学习
星座5287 天前
驾驭AI 2.0时代:Transformer、扩散模型与物理信息神经网络核心技术解析
人工智能·深度学习·神经网络·transformer·强化学习·目标检测算法
橘白3168 天前
rl笔记(一):策略梯度更新算法推导
人工智能·算法·机器人·强化学习
盼小辉丶10 天前
PyTorch强化学习实战(7)——表格学习与贝尔曼方程
pytorch·深度学习·强化学习