Server 与 Location 块配置
server 和 location 块用于定义虚拟主机和请求路由,是 Nginx 配置文件中最核心的 HTTP 层面部分。
一、server 块基本结构
server {
listen 80;
server_name www.example.com example.com;
root /var/www/html;
index index.html index.htm index.php;
access_log /var/log/nginx/example.access.log main;
error_log /var/log/nginx/example.error.log warn;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
`
server 块指令说明
- listen:监听端口,可指定 IP
- server_name:匹配访问域名
- root:站点根目录
- index:默认首页文件
- access_log / error_log:独立站点日志
- location:请求路由规则
二、location 块用法
location 块用于匹配请求 URI,并执行相应操作:
1. 精确匹配
location = /index.html {
root /var/www/html;
}
2. 前缀匹配
location /images/ {
root /var/www/html;
}
3. 正则匹配
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
}
4. 常用指令
- try_files:尝试按顺序查找文件,找不到返回 404
- include fastcgi_params:加载 FastCGI 参数
- fastcgi_pass:指定 PHP-FPM 服务地址
- fastcgi_param SCRIPT_FILENAME:传递脚本文件路径
三、Server 与 Location 块优化建议
- 使用 server_name 精确匹配域名,避免默认站点冲突
- 对静态文件使用前缀匹配 location,提高访问效率
- 对 PHP 或其他后端服务使用正则匹配,并通过 fastcgi_pass 转发
- 日志分离,便于站点分析和排查问题
通过掌握 server 与 location 块,你可以灵活配置虚拟主机和请求路由,实现多站点部署及动态内容处理。
相关内容
- 备份与恢复 本节介绍 Nginx 配置备份与恢复方法,包括配置文件备份、日志备份、快速恢复和灾难恢复策略,保障服务安全可靠。
- 常用命令与服务管理 本节介绍常用的 nginx 命令与服务管理方法,包括启动、停止、重载、日志查看、配置检测等操作,帮助你熟练掌握 nginx 文档中的服务运维要点。
- Nginx 教程:目录结构与配置文件详解 本节 Nginx 教程详细介绍 nginx 目录结构与配置文件组成,帮助你掌握 nginx.conf、sites-enabled、logs 等常见路径及配置含义...
- Nginx 与 Docker 集成 本节介绍 Nginx 与 Docker 的集成方法,包括 Nginx 容器部署、配置卷挂载、端口映射和与后端服务协作,实现容器化高可用 Web 服务。
- FastCGI 工作原理 本节讲解 Nginx 与 FastCGI 的工作原理,包括请求转发、PHP-FPM 处理流程及数据交互方式,帮助你理解 nginx.conf 中动态内容处理机制...
- FastCGI 参数详解 本节详细讲解 Nginx 与 FastCGI 配合时的参数配置,包括 fastcgi_param 指令、标准参数与自定义参数,帮助你精确控制 PHP-FPM 请...