访问的是 PHP 文件,为什么前端得到的是 HTML 文件
Web 服务器收到客户端浏览器发来的请求后,会检查储存在服务器上的对应文件类型。
若发现文件是静态文件( .html/.css/.js
),则直接将文件返回给浏览器;
如果有动态内容(如 .php
),则发送给处理对应内容的插件或应用服务器生成内容,然后将内容返回给浏览器(如将请求转发给 PHP-FPM, PHP-FPM 返回处理结果后,将处理结果返回给浏览器)。
若 Web 服务器未安装生成对应动态内容的插件或模块,或未正确进行配置,则无法正常返回网页(如 Nginx 或 Apache 在没有配置 PHP 支持时,会对 .php
请求返回 403 Forbidden
、 404 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
)。
- SMB/CIFS:Windows 文件共享(如
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# 编写的动态网站。