当前位置: 首页 > news >正文

Nginx 简介

1、概念介绍

Nginx ("engine x") 是一个轻量级、高性能的 WEB 服务器软件和反向代理服务器。

Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

Nginx 以事件驱动(epoll)的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。但是 Nginx 并不支持 cgi 方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用 FastCGI 方式来执行 PHP 程序。

由于 Nginx 本身的一些优点,轻量,开源,易用,越来越多的公司使用 nginx 作为自己公司的 web 应用服务器。

正向代理

正向代理:用于代理内部网络对 Internet 的连接请求(如 VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标 Web 服务器的 HTTP 请求先发送到代理服务器上, 然后由代理服务器去访问 Web 服务器, 并将 Web 服务器的 Response 回传给客户端。

通过代理服务器来访问服务器的过程就叫正向代理。需要在客户端配置代理服务器进行指定网站访问。

反向代理

反向代理:以代理服务器来接受客户端的连接请求,然后将请求转发给网络上的web 服务器(可能是 apache、nginx、tomcat、iis 等),并将从 web 服务器上得到的结果返回给请求连接的客户端,此时代理服务器对外就表现为一个服务器。

反向代理的作用:

  • 保护网站安全:任何来自 Internet 的请求都必须先经过代理服务器
  • 加速 Web 请求:可以缓存真实 Web 服务器上的某些静态资源,减轻真实 Web 服务器的负载压力
  • 现负载均衡:充当负载均衡服务器均衡地分发请求,平衡集群中各个服务器的负载压力
负载均衡

增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。

Nginx VS Apache

Nginx 优点

Apache 优点

轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源

apache 的 rewrite 比 nginx 强大,在 rewrite 频繁的情况下,用 apache。

抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的, 负载能力比 apache 高很多,而 apache 则是阻塞型的。在高并发下 nginx 能保持 低资源低消耗高性能 ,而 apache 在 PHP 处理慢或者前端压力很大的情况下,很容易出现进程数飙升,而拒绝服务的现象。

动态页面,Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用,一般动态请求要 apache 去做,nginx 适合静态请求和反向代理。

nginx 处理静态文件好,静态处理性能比 apache 高三倍以上

apache 更为成熟,少 bug ,nginx 的 bug 相对较多。

nginx 的设计高度模块化,编写模块相对简单

apache 超稳定。

nginx 配置简洁,正则配置让很多事情变得简单,而且改完配置能使用 -t 测试配置有没有问题,apache 配置复杂 。

apache 对 PHP 支持比较简单,nginx 需要配合其他后端用。

nginx 作为负载均衡服务器,支持 7 层负载均衡

nginx 本身就是一个反向代理服务器,而且可以作为非常优秀的邮件代理服务器

apache 发展到现在,模块超多,基本想到的都可以找到。

启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动,还能够不间断服务的情况下进行软件版本的升级 。

apache 仍然是目前的主流,拥有丰富的特性,成熟的技术和开发社区

社区活跃,各种高性能模块出品迅速

对 web server 的需求决定你的选择。大部分情况下 nginx 都优于 APACHE,比如说静态文件处理、PHP-CGI 的支持、反向代理功能、前端 Cache、维持连接等等,Nginx 并发性比较好,CPU 内存占用低。

在 Apache+PHP模式下,如果 PHP 处理慢或者前端压力很大的情况下,很容易出现Apache进程数飙升,从而拒绝服务的现象。Apache在处理动态有优势,如果 rewrite 频繁,那还是 Apache比较好。

2、服务器类型

相关文章:

Nginx 简介

1、概念介绍 Nginx ("engine x") 是一个轻量级、高性能的 WEB 服务器软件和反向代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发…...

C++入门学习(一)写一个helloworld

1、头文件 #include <iostream> using namespace std; 任何程序都需要这两句的&#xff0c;写上就好。 2、主文件 int main() {cout<<"Hello World!"<<endl;return 0; } 由于是int型数据&#xff0c;所以要返回一个值&#xff0c;即return0。…...

ChatGPT 股市知识问答

我 2024-01-17 14:16:38 股市交易的关键指标有哪些&#xff1f; ChatGPT 2024-01-17 14:16:38 股市交易中常用的关键指标有很多&#xff0c;以下是一些常见的指标&#xff1a; 股价指标&#xff1a;股价是衡量股票价格变化的重要指标&#xff0c;包括每股收益&#xff08;EPS…...

uniapp多端评价页

如图所示&#xff1a;评价页 <template><view><!-- 顶部 --><view class"evaluate_head"><image class"headBg" src"/static/evaluate/head.png" mode""></image><view class"headZindex…...

行为树(Behavior Trees)

行为树&#xff08;Behavior Trees&#xff09;是一种在游戏开发中广泛使用的AI设计模式&#xff0c;主要用于描述AI的行为和决策过程&#xff0c;实现更加智能和自然的游戏AI。它由多个节点组成&#xff0c;每个节点代表一个行为或决策&#xff0c;按照特定的方式连接在一起&a…...

opensssl BIO方式https客户端

废话不多说&#xff0c;代码中使用了两种https客户端的实现方式。 #include <windows.h> #include <WinSock.h>#pragma comment(lib,"ws2_32.lib") #include "../include/openssl\ssl.h" #include "../include/openssl\err.h"#pragm…...

JavaScript之判断是否整数、取余、取整、进制、位或、ES6

MENU 方法一方式二方式三方式四方式五结束语 方法一 使用取余运算符判断&#xff0c;利用任何整数都会被1整除的原理&#xff0c;即余数是0的特点&#xff0c;通过这个规则来判断是否是整数。 let isInteger (val) > val % 1 0;// true isInteger(5); // false isInteger(…...

【打造你自己的Shell:编写定制化命令行体验】

本节重点&#xff1a; 学习进程创建,fork/vfork 学习到进程等待 学习到进程程序替换, 微型shell&#xff0c;重新认识shell运行原理 学习到进程终止,认识$? 一、进程创建 1.1.fork函数初识 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程…...

PGSQL主键序列

PostgreSQL和 MySQL数据库还是有一定的区别。 下面了解一下 PGSQL的主键序列。 一、主键 1、系统自带主键序列 在 PostgreSQL 中&#xff0c;GENERATED BY DEFAULT 和 GENERATED ALWAYS 是用于定义自动生成的列&#xff08;Generated Column&#xff09;的选项。一般可作用…...

pg14.2迁移至KingbaseV8R6后部分表记录数为空

pg14.2迁移至KingbaseV8R6后部分表记录数为空 问题描述 kdts工具迁移详情里显示表数据已迁移成功&#xff0c;但是迁移后测试发现部份表记录数为空 分别查看源库和目标库表记录数 --源库 select count(*) from aaf_sys_param order by 1; 229条--目录库 select count(*) fr…...

【Spring 篇】深入解析SpringMVC的组件魅力

SpringMVC&#xff0c;这个名字在Java Web开发者的耳边仿佛是一首动听的旋律&#xff0c;携着轻盈的氛围&#xff0c;带给我们一种愉悦的编程体验。但是&#xff0c;当我们深入探寻这个框架时&#xff0c;它的魅力远不止表面的简单&#xff0c;它由许多组件构成&#xff0c;每个…...

HPsocket 在 C# 中的运用:一款优秀的 socket 通信框架

摘要&#xff1a;本文将为您详细介绍 HPsocket&#xff0c;一款适用于 win32 平台的 socket 通信框架。同时&#xff0c;我们还将探讨如何在 C# 项目中使用 HPsocket&#xff0c;实现网络通信功能。通过本文&#xff0c;您将深入了解 HPsocket 的特点、优势以及在 C# 中的实际应…...

黑豹程序员-MyBatisPlus封装SQL的where条件的对象 QueryWrapper

说明 我们使用MybatisPlus时&#xff0c;我们可以不直接通过SQL操作数据库&#xff0c;而使用面向对象的方式。 其中遇到一个问题&#xff0c;就是如何用面向对象的方式实现 SQL中的where条件拼接。 MybatisPlus很体贴&#xff0c;它提供了一个QueryWrapper&#xff0c;查询包…...

每日一题——LeetCode1252.奇数值单元格的数目

进阶&#xff1a;你可以设计一个时间复杂度为 O(n m indices.length) 且仅用 O(n m) 额外空间的算法来解决此问题吗&#xff1f; 方法一 直接模拟&#xff1a; 创建一个n x m的矩阵&#xff0c;初始化所有元素为0&#xff0c;对于indices中的每一对[ri,ci]&#xff0c;将矩…...

C#学习笔记3-函数与单元测试

现在开始参考书籍变为&#xff1a;《C# 12 and .NET 8 – Modern Cross-Platform Development.Mark Price》 函数 Writing, Debugging, and Testing Functions 写函数Debug运行时 logging单元测试 写函数 一个有着 XML 注释的函数 这里直接举一个例子&#xff1a; Numbe…...

osg屏幕事件处理器和状态集操控器学习

1 osgViewer::WindowSizeHandler 该事件处理器提供了对窗体屏幕的控制,功能如下: 按住或再次键盘f键,则三维窗体在全屏和退出全屏之间切换; 按住键盘>键,则屏幕分辨率增加; 按住键盘<键,则屏幕分辨率减小; 2 osgGA::StateSetManipulator 该事件处理器是状态集操…...

中国泛娱乐出海视频字幕解决方案

随着企业泛娱乐出海越来越成为热门&#xff0c;自动加载视频字幕需求变得越来越普遍&#xff0c;这能够为用户观众提供更好的视频体验。此次九河云为客户带来了aws视频字幕解决方案&#xff0c;满足客户视频字幕生成、翻译及后续编辑等完整工作流的需求。 客户价值&#xff1a…...

iOS原生应用屏幕适配完整流程

1. 已iPhone 11 布局为设计布局,其他机型已这个来适配 2.变量与控件对应关系 txtViewer: txtAccount txtpwd seg btnOk 3.适配方法实现: //iOS屏幕适配 -(vo...

【征服redis8】Redis的AOF持久化

Redis 支持多种持久化方式来保证数据的可靠性和持久性。前面我们介绍了RDB方式。我们我们介绍第二种方式——AOF&#xff08;Append Only File&#xff09;机制是一种常用的持久化方式&#xff0c;它记录了所有对 Redis 数据库进行修改的命令&#xff0c;在 Redis 重启时可以使…...

【动态规划】【二分查找】【C++算法】730. 统计不同回文子序列

作者推荐 【动态规划】【数学】【C算法】18赛车 涉及知识点 动态规划 二分查找 LeetCode730. 统计不同回文子序列 给你一个字符串 s &#xff0c;返回 s 中不同的非空回文子序列个数 。由于答案可能很大&#xff0c;请返回对 109 7 取余 的结果。 字符串的子序列可以经由…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...