一聚教程网:一个值得你收藏的教程网站

热门教程

Nginx 中如何配置 nginx.conf 文件实现虚拟主机绑定

时间:2026-08-31 09:32:49 编辑:袖梨 来源:一聚教程网

Nginx虚拟主机通过server块和server_name匹配Host字段实现,推荐为每个站点单独配置并用include加载;需在nginx.conf中添加include /etc/nginx/sites-enabled/*,在sites-available中创建配置文件,再软链接至sites-enabled,最后nginx -t检查并reload生效。

在 Nginx 中,虚拟主机本质就是通过 server 块区分不同站点,核心是靠 server_name 匹配请求头里的 Host 字段。配置的关键不是改单个文件“硬编码”,而是用清晰、可维护的结构组织多个站点——尤其推荐把每个站点单独写成配置文件,再统一 include 进主配置。

明确主配置中启用子配置加载

打开 /etc/nginx/nginx.conf(Ubuntu/Debian 系统常见路径),确保 http 块末尾有这行:

  1. include /etc/nginx/sites-enabled/*;

如果没有,手动添加。这行告诉 Nginx 加载 sites-enabled 目录下所有文件。它本身不定义站点,只负责“调度”。

为每个域名建独立 server 配置文件

进入 /etc/nginx/sites-available/,新建一个文件,比如 example.com

  1. sudo nano /etc/nginx/sites-available/example.com

填入标准 server 块:

server {listen 80;server_name example.com www.example.com;root /var/www/example.com;index index.html index.php;location / {try_files $uri $uri/ =404;}}

注意:server_name 可写多个域名,空格分隔;root 路径需真实存在且 Nginx 有读取权限;location / 是基本路由兜底规则。

启用配置并建立软链接

配置写好后,不能直接放 sites-enabled 下——规范做法是创建软链接:

  1. sudo ln -sf /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

这样便于启停:删掉软链接即停用,无需删源文件。多个域名就重复这个流程,各自建文件、各自链接。

检查语法并重载服务

每加一个配置都要验证,避免 reload 失败导致服务中断:

  1. sudo nginx -t —— 显示 “syntax is ok” 和 “test is successful” 才算通过
  2. sudo systemctl reload nginxsudo nginx -s reload —— 平滑重载,不中断现有连接

如果用的是自签证书或要支持 HTTPS,后续可在同一 server 块里补上 listen 443 ssl 和证书路径,但 HTTP 和 HTTPS 应该分开写两个 server 块更清晰。

热门栏目