5.7.前端Web 容器

 前端Web 容器

Web 容器(如 Nginx,Apache)可直接提供 HTML、CSS、JavaScript 等静态文件服务

Nginx 在windows上的安装和使用

下载 ZIP 压缩包后解压至无中文路径的目录 下载地址http://nginx.org/download/nginx-1.26.3.zip

启动服务​

  • 以管理员身份打开 CMD,切换到 Nginx 目录:
    cd C:\nginx
  • 启动命令:
    start nginx
    或直接运行 nginx.exe(会闪退但后台进程已启动)可以在任务管理器看到启动的进程

  • 服务管理命令

    命令作用适用场景
    nginx -s start启动服务首次启动
    nginx -s reload重载配置(不中断服务)修改配置后应用
    nginx -s quit优雅退出正常关闭
    nginx -s stop强制终止紧急关闭
    nginx -t检查配置文件语法修改配置前验证
    tail -f logs/access.log# 实时查看访问日志

    Nginx 核心配置文件为conf目录下的 nginx.conf

配置简单介绍

#工作进程数,建议设为 CPU 核心数
worker_processes  1;

# 事件块
events {
#单进程最大并发连接数(默认 1024)
    worker_connections  1024;
}

# HTTP 块
http {
    # HTTP 全局配置
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    
     # 虚拟主机配置
    server {
        listen       80;           # 监听端口
        server_name  localhost;    # 域名列表
        # 路径匹配规则
        location / {
 # root 是网站目录(我们写的前端代码放到nginx的html目录下,启动nginx。我们就可以访问。)
            root   html;                 
            index  index.html index.htm;  # 默认索引文件
        }

    }

}

后端介绍

前端只是页面的展示和交互。需要后端控制​​业务逻辑的完整性、数据安全性及系统协同性​​。

场景示例​​:用户A只能查看本部门数据,用户B可查看全公司数据

场景示例​​:订单金额超过 1 万元需二次审批

场景示例​​:电商库存扣减防止超卖

后端为前端构建了安全、稳定、可扩展的数据交互环境。

实际开发中,分为​有 Web 容器的语言​(php,java)和无 Web 容器的语言​(Node.js、Go

学习上,无 Web 容器的语言 相对会更好一点。

核心定义

​类别​​定义​​典型语言/框架​
​有 Web 容器的语言​依赖外部 Web 容器(如 Tomcat、Jetty)运行,需通过 Servlet/CGI 等协议处理请求Java(Servlet)、PHP(需搭配 Apache/Nginx)
​无 Web 容器的语言​内置 HTTP 服务器或直接与操作系统交互,无需传统容器即可处理请求Node.js、Go(net/http)

运行机制​
​维度​​有 Web 容器​​无 Web 容器​
​请求处理​通过容器管理 Servlet/Filter 生命周期,请求由容器分发到具体业务逻辑自行实现 HTTP 服务器(如 Node.js 的 http 模块,go的标准库 net/http)直接处理请求与响应
​协议支持​严格遵循 Servlet/HTTP 协议,需容器解析请求头、会话等灵活支持 HTTP/WebSocket 等协议,可自定义通信逻辑
 ​​性能表现​
​场景​​有 Web 容器​​无 Web 容器​
​高并发​容器优化线程复用(如 Tomcat 的 NIO 连接器),适合长连接与稳定负载轻量级框架,通过异步处理提升吞吐量,但需手动优化
​内存占用​容器本身占用资源较多(如 JVM 堆内存),适合长期运行服务无容器开销,适合微服务

go 和nodejs对比


网站输出性能对比
  1. 并发处理能力
    • Go:基于 goroutine 的轻量级协程机制,支持多核并行计算,单进程即可处理数万并发连接。例如,在 16核服务器 测试中,Go的请求吞吐量可达 30,000+ QPS,且CPU资源利用率更高。
    • Node.js :依赖单线程 事件循环模型,通过非阻塞I/O实现高并发,但计算密集型任务易阻塞主线程。例如,处理 10,000并发连接 时,Node.js 的吞吐量约为 15,000 QPS,且CPU负载集中在单核。
  2. 延迟与稳定性
    • Go:协程调度由语言运行时控制,延迟更稳定。测试显示,Go在 1000并发 下平均延迟为 50ms,波动范围小。
    • Node.js :事件循环易因长任务或回调嵌套导致延迟波动。例如,在 高负载数据库操作 中,Node.js 的延迟可能骤增至 200ms+
  3. 适用场景
    • Go:适合 高吞吐、低延迟 场景,如微服务、实时交易系统(如电商订单处理)。
    • Node.js :擅长 I/O密集型任务,如实时聊天、API网关,但对CPU密集型运算(如数据加密)性能较差。

数据库操作对比
  1. 连接与查询效率
    • Go:通过 协程池 管理数据库连接,减少资源竞争。
    • Node.js :依赖 回调或Promise 处理异步查询,易因回调地狱降低可维护性。
  2. 事务与锁机制
    • Go:支持 原子性事务 和 分布式锁(如Redis锁),适用于金融等高一致性场景。
    • Node.js :事务处理需依赖 手动控制,且在高并发下易出现连接泄漏。

后端编程语言市场份额 

根据2025年最新行业数据及权威榜单(TIOBE指数),网站后端编程语言市场份额排名如下(数据截至2025年3月):

 ​​Java的韧性​

  • ​市场份额​​:10.36%(企业级市场占比超40%)
  • ​技术壁垒​​:Spring Cloud Alibaba在云原生领域市占率75%,金融核心系统依赖度90% 

 ​​Node.js的全栈开发​

  • ​市场份额​​:3.46%(实时应用、全栈开发)
  • ​生态优势​​:全栈开发主流选择,Node.js 在实时服务和小型应用中表现突出

​Go的云原生爆发​

  • ​市场份额​​:2.78%(云原生领域占比超90%)
  • ​生态优势​​:Kubernetes/Docker生态工具链100%基于Go开发

​PHP的存量市场​

  • ​市场份额​​:1.48%(CMS领域占比77%)
  • ​转型路径​​:Laravel框架支撑60%的新项目开发,WordPress维护需求占30%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chxii

小小打赏,大大鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值