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

相关推荐
不去幼儿园6 小时前
【SSL-RL】自监督强化学习: 好奇心驱动探索 (CDE)算法
大数据·人工智能·python·算法·机器学习·强化学习
字节跳动开源5 天前
最高提升20倍吞吐量!豆包大模型团队发布全新 RLHF 框架,现已开源!
开源·llm·强化学习
DataFountain数据科学15 天前
《文心一言插件设计与开发》赛题三等奖方案 | NoteTable
大数据·人工智能·数学建模·文心一言·强化学习·数据竞赛
人工智能培训咨询叶梓24 天前
语言模型与人类反馈的深度融合:Chain of Hindsight技术
人工智能·深度学习·语言模型·自然语言处理·性能优化·强化学习·大模型微调
Gaoshu1011 个月前
◇【论文_20170828 v2】PPO 算法〔OpenAI〕: Proximal Policy Optimization Algorithms
强化学习·论文整理
lijianhua_97121 个月前
先进制造aps专题二十六 基于强化学习的人工智能ai生产排程aps模型简介
人工智能·强化学习·aps
Gaoshu1012 个月前
《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch10 Actor-Critic 方法 » P2
笔记·强化学习
Nicolas8932 个月前
【算法业务】基于Multi-Armed Bandits的个性化push文案自动优选算法实践
强化学习·推荐算法·多臂老虎机·个性化推送系统·push系统·用户激活·文案优选
机器白学2 个月前
【强化学习系列】Gym库使用——创建自己的强化学习环境3:矢量化环境+奖励函数设计
强化学习
荒野火狐2 个月前
【FreeRL】我的深度学习库构建思想
人工智能·深度学习·强化学习·dqn