本指南将详细介绍 Web 技术基础、HTTP 协议以及 Nginx 网站环境的部署过程,帮助您逐步理解和应用。内容基于真实可靠的知识,结构清晰,便于学习。

一、Web 基础

Web 技术的基础包括域名、DNS 系统和相关文件管理,这些是互联网访问的核心。

  1. 域名和DNS
    (1)域名的概念:域名是互联网上用于标识网站的字符串,如 example.com,它映射到 IP 地址,方便用户访问。
    (2)域名的结构:域名采用分层结构,从右到左依次为顶级域(TLD)、二级域和子域。例如,在 blog.example.com 中,.com 是 TLD,example 是二级域,blog 是子域。
    (3)域名结构类型:常见类型包括通用顶级域(gTLD,如 .com.org)、国家代码顶级域(ccTLD,如 .cn)和国际化域名(IDN)。域名由 ICANN 管理。

  2. Hosts 文件
    (1)Hosts 文件的作用:Hosts 文件(如 Windows 的 C:\Windows\System32\drivers\etc\hosts 或 Linux 的 /etc/hosts)用于本地域名解析,优先级高于 DNS,常用于测试或屏蔽网站。
    (2)修改 Hosts 文件:以管理员权限编辑文件,添加行如 127.0.0.1 example.com,保存后生效,无需重启。

  3. DNS:域名系统(DNS)将域名转换为 IP 地址,采用分布式数据库和递归查询机制。查询过程包括本地缓存、递归解析器和权威服务器。

  4. 域名注册:通过注册商(如 GoDaddy)申请域名,需付费并遵守 ICANN 规则。注册后需配置 DNS 记录(如 A 记录指向 IP)。

二、网页与 HTML

网页是 Web 的核心内容,HTML 是构建网页的标准语言。

  1. 网页的概念:网页是存储在服务器上的文档,通过浏览器渲染显示文本、图像和链接等内容。

  2. HTML 概念:超文本标记语言(HTML)使用标签定义网页结构,如标题、段落和链接。

  3. HTML 基本标签
    (1)HTML 语法规则:标签用尖括号包围,如 <tag>,可嵌套和包含属性。示例:<p>这是一个段落</p>
    (2)HTML 文件结构:基本结构包括:

    <!DOCTYPE html>
    <html>
    <head>
        <title>页面标题</title>
    </head>
    <body>
        <h1>主标题</h1>
        <p>内容段落。</p>
    </body>
    </html>
    

  4. 网站和主页:网站是多个网页的集合,主页(如 index.html)是入口页面,通常位于根目录。

  5. Web1.0 与 Web2.0:Web1.0 以静态内容为主(如信息展示),Web2.0 强调用户交互(如社交媒体),使用动态技术。

三、静态网页与动态网页

网页类型影响内容交付方式。

  1. 静态网页:内容固定,由 HTML、CSS 和 JavaScript 组成,服务器直接返回文件,适用于展示型网站。
  2. 动态网页:内容根据用户请求实时生成,使用服务器端语言(如 PHP),支持数据库交互。
  3. 动态网页语言:常见语言包括 PHP、Python(Django)、Ruby(Rails),用于处理表单、用户登录等。
四、HTTP 协议

HTTP 是 Web 通信的基础协议,定义客户端与服务器交互规则。

  1. HTTP 协议概念:超文本传输协议(HTTP)是无状态协议,基于 TCP/IP,用于传输网页资源。
  2. HTTP 方法:主要方法包括:
  • GET:请求资源,如获取网页。
  • POST:提交数据,如表单提交。
  • 其他:PUT、DELETE 等用于 RESTful API。
  1. HTTP 状态码:响应代码表示请求结果,例如:
  • $200$:成功(OK)。
  • $404$:未找到(Not Found)。
  • $500$:服务器错误。
  1. HTTP 请求流程分析
    (1)请求报文:客户端发送报文,包含方法、URL、头部和可选主体。示例格式:
    GET /index.html HTTP/1.1
    Host: example.com
    

    (2)响应报文:服务器返回报文,含状态码、头部和资源主体。示例:
    HTTP/1.1 200 OK
    Content-Type: text/html
    <html>...</html>
    

五、Nginx 网站环境部署

Nginx 是高效 Web 服务器,支持高并发,常用于静态内容和反向代理。

  1. Nginx 服务基础:Nginx 采用事件驱动架构,轻量级,可处理静态文件、负载均衡和 SSL 终止。

  2. 编译安装 Nginx
    在 Linux 系统(如 CentOS)上执行以下步骤:
    (1)安装支持软件:先安装依赖库。

    yum install gcc pcre-devel zlib-devel openssl-devel
    

    (2)创建运行用户、组:为安全起见,创建专用用户。

    groupadd nginx
    useradd -M -s /sbin/nologin -g nginx nginx
    

    (3)编译安装 Nginx:下载源码,编译并安装。

    wget http://nginx.org/download/nginx-1.20.1.tar.gz
    tar -zxvf nginx-1.20.1.tar.gz
    cd nginx-1.20.1
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
    make
    make install
    

  3. Nginx 的运行控制
    (1)检查配置文件:使用命令验证配置正确性。

    /usr/local/nginx/sbin/nginx -t
    

    (2)启动、停止 Nginx:控制服务状态。

    /usr/local/nginx/sbin/nginx  # 启动
    /usr/local/nginx/sbin/nginx -s stop  # 停止
    

    (3)添加 Nginx 系统服务:创建 systemd 单元文件(如 /etc/systemd/system/nginx.service),内容如下:

    [Unit]
    Description=Nginx Server
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s stop
    User=nginx
    Group=nginx
    
    [Install]
    WantedBy=multi-user.target
    

    然后启用服务:

    systemctl daemon-reload
    systemctl enable nginx
    systemctl start nginx
    

  4. 配置文件 nginx.conf
    配置文件位于 /usr/local/nginx/conf/nginx.conf,分多个部分:
    (1)全局配置:设置工作进程数和用户。

    worker_processes auto;
    user nginx;
    

    (2)I/O 事件配置:定义事件模型和连接数。

    events {
        worker_connections 1024;
        use epoll;
    }
    

    (3)HTTP 配置:包含服务器块、监听端口和位置规则。

    http {
        server {
            listen 80;
            server_name localhost;
            location / {
                root html;
                index index.html;
            }
        }
    }
    

    (4)访问状态统计:启用状态模块以监控性能。

    location /status {
        stub_status on;
        access_log off;
    }
    

    访问 http://localhost/status 查看统计信息,如活动连接数 $A_c$。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐