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

Web与Nginx网站服务

一、Web 基础概念

1.1 Web 概述

  • 定义:World Wide Web(万维网),基于 HTTP/HTTPS 的超文本信息系统。

  • 特点

    • 分布式:资源分布在全球服务器。

    • 跨平台:只要有浏览器即可访问。

    • 无状态:每次 HTTP 请求都是独立的,服务器不会记住客户端状态(除非使用 Cookie/Session)

1.2 B/S 架构

  • Browser/Server 模型:

    • 浏览器:用户的入口、发送请求、渲染页面。

    • 服务器:接收请求、返回资源。

    • 用户浏览器 ──> Web服务器(Nginx/Apache)   

                                             │ └─> 应用服务器(PHP/Python/Java)

                                                                │ └─> 数据库(MySQL/Redis)

1.3 Web 请求响应流程

  1. 输入 URL:用户在浏览器输入 http://www.example.com

  2. DNS 解析:浏览器将域名解析为 IP 地址。

  3. 建立连接:浏览器与 Web 服务器建立 TCP 连接(3 次握手)。

  4. 发送请求:浏览器发起 HTTP 请求(GET/POST)。

  5. 服务器处理

    • Web 服务器处理静态资源请求

    • 动态请求转发到应用服务器(如 Tomcat、Django)

    • 应用服务器可能再查询数据库

  6. 返回响应:Web 服务器将结果打包成 HTTP 响应报文返回浏览器。

  7. 渲染页面:浏览器解析 HTML、加载 CSS/JS、渲染最终页面。

浏览器 <----> Web服务器 <----> 应用服务器 <----> 数据库

    1.4 静态资源 vs 动态资源

    类型特点示例
    静态资源直接返回,速度快HTML/CSS/图片/JS
    动态资源服务器端生成,支持交互PHP/Python/Java/Ruby 脚本

    1.5 Web 发展阶段

    • Web 1.0:只读,静态页面。

    • Web 2.0:交互式,用户生成内容(AJAX)。

    • Web 3.0:智能化,语义网/区块链/去中心化。


    二、HTTP/HTTPS 协议

    2.1 HTTP vs HTTPS

    • HTTP:明文传输,不安全。

    • HTTPS:HTTP + SSL/TLS 加密,防中间人攻击。

    2.2 TLS 握手流程

    1. 客户端发起请求 → 服务端返回证书 → 双方协商加密算法 → 建立安全通道。

    2. 客户端 Hello → 服务端 Hello + 证书 → 客户端验证 → 加密通信

    流程

    1. 客户端 Hello

    • 浏览器发起请求,告诉服务器自己支持哪些加密算法。

    1. 服务端 Hello + 证书

      • 网站返回 SSL 证书(证明身份),选择一种加密算法。

    2. 客户端验证证书

      • 浏览器检查证书是否可信(CA 颁发、没过期、域名匹配)。

    3. 协商密钥

      • 双方生成一个临时密钥,用于对称加密后续通信。

    4. 加密通信开始

      • 后续 HTTP 数据都通过加密通道传输。

    2.3 HTTP 状态码

    HTTP 状态码都是 三位数字,按首位分为五类:

    类型范围含义大白话理解
    1xx100–199信息性状态码“我收到了请求,还在处理中”
    2xx200–299成功“请求成功,服务器给你东西了”
    3xx300–399重定向“你要的东西搬家了,去新地址找”
    4xx400–499客户端错误“你请求有问题(URL错、权限不够)”
    5xx500–599服务器错误“服务器出问题,暂时拿不到东西”
    2.3.2 常用状态码详解

    2xx 成功

    状态码含义类比
    200 OK请求成功“东西拿到了”
    201 Created创建成功“你提交的表单/资源已创建”
    204 No Content成功,但没有内容“操作成功,但没有额外东西返回”

    3xx 重定向

    状态码含义类比
    301 Moved Permanently永久搬家“这个页面永久换地址了”
    302 Found临时搬家“暂时换地址,下一次还用旧地址”
    304 Not Modified内容未改“东西没变,你可以用缓存”

    4xx 客户端错误

    状态码含义类比
    400 Bad Request请求格式错“你写的请求我看不懂”
    401 Unauthorized未认证“先登录,再访问”
    403 Forbidden禁止访问“你没权限”
    404 Not Found找不到页面“东西搬走或根本没这东西”

    5xx 服务器错误

    状态码含义类比
    500 Internal Server Error服务器内部出错“服务器崩了”
    502 Bad Gateway网关错误“我去找别的服务器,结果那边挂了”
    503 Service Unavailable服务不可用“服务器忙不过来了,稍后再试”
    504 Gateway Timeout网关超时“找别的服务器太慢,超时了”

    生活中的 HTTP 状态码类比

    场景状态码对应情况
    打开网页正常200成功拿到网页
    点链接页面搬家301/302浏览器自动跳到新地址
    输入错网址404“没找到这个页面”
    登录需要权限401“先登录才能看”
    网站挂了500“服务器出问题了”

    三、Nginx 介绍与配置

    3.1 Nginx 简介

    • 高性能 HTTP/反向代理服务器,支持高并发(3w~5w/台)。

    • 用途:

    • 静态资源服务:可以直接把网页、图片、视频这些文件发给用户。

    • 反向代理:用户访问你的服务器,Nginx 可以帮你把请求转发到后端真正处理请求的服务器。

    • 负载均衡:当有很多后端服务器时,Nginx 可以智能分配流量,让每台服务器都不忙不过来。

    • 高并发处理:用事件驱动的方式处理请求,能同时处理成千上万的用户请求,而不会占用太多资源。

    • 优势

    • 轻量级,占用内存小

    • 支持百万级并发访问

    • 稳定可靠,开源且社区活跃

    3.2 Nginx vs Apache

    特性NginxApache
    架构事件驱动进程/线程驱动
    并发能力一般
    热部署支持不支持
    静态文件处理高效一般
    反向代理优势明显一般
    • Nginx是一个甚于事件的Web服务器,Apache是一个基于流程的服务器;

    • Nginx避免子进程的概念,Apache是基于子进程的;

    • Nginx在内存消耗和连接方面更好,Apache在内存消耗和连接方面一般;

    • Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于CPU和内存等硬件;

    • Nginx支持热部署,Apache不支持热部署;

    • Nginx对于静态文件处理具有更高效率,Apache相对一般;

    • Nginx在反向代理场景具有明显优势,Apache相对一般。

    3.3 Nginx 进程结构

    • 多进程模型,Master检查控制 Worker 进程处理请求。

    • Worker 数量建议 = CPU 核心数,避免过多竞争。


    四、Nginx 配置详解

    4.1 主配置文件:nginx.conf

    全局配置

    nginx

    user nobody;
    worker_processes 4;
    error_log logs/error.log;
    pid logs/nginx.pid;
    I/O 事件配置

    nginx

    events {use epoll;worker_connections 4096;
    }
    HTTP 配置

    nginx

    http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name www.kgc.com;charset utf-8;root html;index index.html index.php;error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
    }

    五、Nginx 虚拟主机

    5.1 基于域名

    nginx

    server {listen 80;server_name www.yjs.com;root /var/www/html/yjs;
    }server {listen 80;server_name www.benet.com;root /var/www/html/benet;
    }

    5.2 基于 IP

    nginx

    server {listen 192.168.10.21:80;server_name www.yjs.com;root /var/www/html/yjs;
    }server {listen 192.168.10.40:80;server_name www.benet.com;root /var/www/html/benet;
    }

    5.3 基于端口

    nginx

    server {listen 8080;server_name www.yjs.com;root /var/www/html/yjs;
    }server {listen 8888;server_name www.benet.com;root /var/www/html/benet;
    }

    六、访问控制与状态统计

    6.1 状态统计

    nginx

    location /status {stub_status on;access_log off;
    }

    6.2 基于密码认证

    nginx

    auth_basic "secret";
    auth_basic_user_file /usr/local/nginx/passwd.db;

    6.3 基于 IP 控制

    nginx

    allow 192.168.10.20;
    deny all;

    总结

    • Web 基础:B/S 架构、请求响应流程、动静资源区别。

    • HTTP/HTTPS:加密、状态码、握手流程。

    • Nginx:高性能、多进程、配置灵活。

    • 虚拟主机:域名/IP/端口三种方式。

    • 安全控制:状态监控、密码认证、IP 黑白名单。


    文章转载自:

    http://uWVphzDa.pnLjy.cn
    http://A8X33npy.pnLjy.cn
    http://qozhioWm.pnLjy.cn
    http://t2kqfRxG.pnLjy.cn
    http://tJZnCUIW.pnLjy.cn
    http://R6gQI9GZ.pnLjy.cn
    http://JplpHeoY.pnLjy.cn
    http://hm0QRBJt.pnLjy.cn
    http://WxTBtUnw.pnLjy.cn
    http://TednXJWI.pnLjy.cn
    http://HqXCBXmN.pnLjy.cn
    http://bPAAoc9N.pnLjy.cn
    http://O5wN9gf5.pnLjy.cn
    http://D5qdT37o.pnLjy.cn
    http://AB5ickq5.pnLjy.cn
    http://hOyw0knU.pnLjy.cn
    http://uMTJQFzc.pnLjy.cn
    http://HWTn6tma.pnLjy.cn
    http://BBolX38c.pnLjy.cn
    http://QgsiVaKA.pnLjy.cn
    http://unNt3PnO.pnLjy.cn
    http://AKDhIcuk.pnLjy.cn
    http://7HUOK0gB.pnLjy.cn
    http://TwpTb0QS.pnLjy.cn
    http://3TmENUyJ.pnLjy.cn
    http://z9KUnocH.pnLjy.cn
    http://WEl47uy8.pnLjy.cn
    http://QjaN8wcP.pnLjy.cn
    http://N6ROodUE.pnLjy.cn
    http://CrRa0kuk.pnLjy.cn
    http://www.dtcms.com/a/366208.html

    相关文章:

  1. 如何导出 手机中的APK并查看清单文件
  2. 《R for Data Science (2e)》免费中文翻译 (第7章) --- Data import(1)
  3. 2025高教社杯国赛数学建模选题建议+初步分析
  4. 企业微信SCRM工具推荐:微盛AI·企微管家为什么是首选?
  5. 直接让前端请求代理到自己的本地服务器,告别CV报文到自己的API工具,解放双手
  6. 国产化Excel处理组件Spire.XLS教程:Java 向 Excel 写入数据的3种高效方法(含代码示例)
  7. 8051单片机-成为点灯大师
  8. 单片机实现分页显示环形更新的历史数据
  9. 详细讲解pyspark中dsl格式进行大数据开发中的的所有编程情况
  10. 大数据毕业设计选题推荐-基于大数据的懂车帝二手车数据分析系统-Spark-Hadoop-Bigdata
  11. uni 拍照上传拍视频上传以及相册
  12. React 中的 HOC 和 Hooks
  13. 大数据毕业设计选题推荐-基于大数据的儿童出生体重和妊娠期数据可视化分析系统-Hadoop-Spark-数据可视化-BigData
  14. 【C++练习】06.输出100以内的所有素数
  15. 结合prompt源码分析NodeRAG的build过程
  16. 【C++闯关笔记】STL:list 的学习和使用
  17. 解密大语言模型推理:Prompt Processing 的内存管理与计算优化
  18. Redis vs Memcached vs MongoDB:深入对比与选型指南
  19. C# 修改基类List中某一元素的子类类型
  20. 如何在 iPhone 或 iPad 上删除文件
  21. MongoDB 高可用部署:Replica Set 搭建与故障转移测试
  22. MacOS微信双开,亲测有效
  23. MySQL事务的四大特性(ACID)
  24. 数说故事 | 2025年运动相机数据报告,深挖主流品牌运营策略及行业趋势​
  25. K8S容器POD内存快照导出分析处理方案
  26. 【面试题】Prompt是如何生成的,优化目标是什么,任务是什么?
  27. Elasticsearch 备份和恢复
  28. 软考中级习题与解答——第二章_程序语言与语言处理程序(2)
  29. RTC实时时钟RX8025SA国产替代FRTC8025S
  30. git基础命令 git基础操作