关于服务器的知识(持续增加)

访问的是 PHP 文件,为什么前端得到的是 HTML 文件

Web 服务器收到客户端浏览器发来的请求后,会检查储存在服务器上的对应文件类型。

若发现文件是静态文件.html/.css/.js ),则直接将文件返回给浏览器;

如果有动态内容(如 .php ),则发送给处理对应内容的插件应用服务器生成内容,然后将内容返回给浏览器(如将请求转发给 PHP-FPM, PHP-FPM 返回处理结果后,将处理结果返回给浏览器)。

若 Web 服务器未安装生成对应动态内容的插件或模块,或未正确进行配置,则无法正常返回网页(如 Nginx 或 Apache 在没有配置 PHP 支持时,会对 .php 请求返回 403 Forbidden404 Not Found ,甚至直接显示PHP源代码)。

如果 Web 服务器识别不了文件(如 .txt/.exe 等),则会直接把文件不作处理发给客户端,呈现在用户面前的就是该文件加入浏览器的“下载”列表。

常见 Web 服务器软件日志路径

服务器软件 访问日志路径(默认) 错误日志路径(默认)
Apache /var/log/apache2/access.log (Linux) /var/log/apache2/error.log
C:\Apache24\logs\access.log (Windows) C:\Apache24\logs\error.log
Nginx /var/log/nginx/access.log (Linux) /var/log/nginx/error.log
C:\nginx\logs\access.log (Windows) C:\nginx\logs\error.log
IIS %SystemDrive%\inetpub\logs\LogFiles\ 同目录下按站点分级的错误日志

常见服务器类型以及例子

1. Web 服务器(Web Server)

作用

托管网站或 Web 应用程序,接收客户端(如浏览器)的 HTTP/HTTPS 请求,返回 HTML 页面、图片、视频等静态或动态内容。

工作机制

  • 静态内容:直接返回服务器上存储的文件(如 HTML、CSS、图片)。
  • 动态内容:与后端应用服务器(如 Tomcat)协作,通过 CGI、FastCGI 或反向代理将请求转发给后端处理,再返回结果。

常见例子

  • Apache HTTP Server:模块化设计,支持 PHP、Python 等动态语言。
  • Nginx:高性能,擅长处理高并发,常用于反向代理和负载均衡。
  • Caddy:自动 HTTPS 配置,适合新手快速部署。

2. 数据库服务器(Database Server)

作用

集中存储和管理结构化数据(如用户信息、订单记录),提供高效的查询、插入、更新和删除操作。

工作机制

  • 使用 SQL(如 MySQL)或 NoSQL(如 MongoDB)语言操作数据。
  • 通过事务管理(ACID)保证数据一致性(适用于银行、支付系统)。

常见例子

  • 关系型数据库:

    • MySQL:开源,适合中小型应用。
    • PostgreSQL:支持复杂查询和 JSON 数据类型,适合数据分析。
  • NoSQL 数据库:

    • MongoDB:文档型数据库,适合非结构化数据(如日志、社交网络)。
  • Redis:内存数据库,用于缓存和高速读写(如秒杀系统)。


3. 邮件服务器(Mail Server)

作用

负责电子邮件的发送(SMTP)、接收(POP3/IMAP)和存储,管理用户邮箱账号。

工作机制

  • SMTP 协议:发送邮件(如从 Outlook 发送到 Gmail)。
  • POP3/IMAP 协议:接收邮件(POP3 下载后删除,IMAP 同步保留在服务器)。
  • 反垃圾邮件:通过 SPF、DKIM 等技术验证邮件合法性。

常见例子

  • Postfix + Dovecot:开源组合,Postfix 处理 SMTP,Dovecot 处理 IMAP/POP3。
  • Microsoft Exchange:集成日历、联系人功能,适合企业协同办公。

4. 文件服务器(File Server)

作用

集中存储文件(如文档、视频),支持多用户共享和权限管理。

工作机制

  • 协议支持:

    • SMB/CIFS:Windows 文件共享(如 \\192.168.1.100\share)。
  • NFS:Linux/Unix 文件共享。

    • FTP/SFTP:跨平台文件传输(如 FileZilla)。
  • 权限控制:限制用户对文件的读写权限。

常见例子

  • Windows Server 文件服务:通过 SMB 协议共享文件夹。
  • FreeNAS:开源 NAS 系统,支持 RAID 冗余和快照备份。
  • Nextcloud:自建私有云盘(类似 Dropbox)。

5. DNS 服务器(Domain Name System Server)

作用

将人类可读的域名(如 www.google.com)转换为机器可识别的 IP 地址(如 142.250.189.206)。

工作机制

  • 递归查询:客户端向 DNS 服务器请求解析,若服务器无缓存则逐级向上查询(根域名 → 顶级域名 → 权威域名)。
  • 权威 DNS:存储特定域名的解析记录(如 A 记录、CNAME 记录)。

常见例子

  • BIND:最广泛使用的开源 DNS 软件。
  • Cloudflare DNS:提供快速解析和 DDoS 防护。
  • 阿里云 DNS:国内常用的域名解析服务。

6. 应用服务器(Application Server)

作用

运行后端业务逻辑(如用户登录、支付接口),处理复杂计算或数据库操作,为 Web 服务器提供动态内容。

工作机制

  • 接收来自 Web 服务器的请求(如通过 REST API)。
  • 执行业务逻辑(如 Java/Python 代码),连接数据库并返回 JSON/XML 数据。

常见例子

  • Tomcat:轻量级 Java Web 应用服务器。
  • Node.js:基于 JavaScript 的运行时环境(如 Express 框架)。
  • Microsoft IIS(集成 ASP.NET):支持 C# 编写的动态网站。