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

热门教程

Nginx 中如何在 nginx.conf 中配置基于端口的虚拟主机访问

时间:2026-08-23 12:07:48 编辑:袖梨 来源:一聚教程网

在nginx.conf的http块内添加多个server块,每个用listen指定唯一端口(如8081、8082),root指向对应站点目录,index指定首页文件,即可实现基于端口的虚拟主机;需创建目录、放index.html、nginx -t检测、reload生效并开放防火墙端口。

直接在 nginx.confhttp { } 块内添加多个 server 块,每个块用 listen 指定不同端口,并配好 rootindex,就能实现基于端口的虚拟主机访问。它不依赖域名或 Host 头,只靠端口号区分请求。

配置结构要清晰

每个 server 块代表一个独立端口服务,关键字段必须明确:

  1. listen 后跟唯一端口号(如 80818082),不能重复
  2. server_name 可设为 localhost 或留空,该字段在此场景下不参与匹配
  3. root 指向该端口对应站点的根目录(如 /var/www/site-a
  4. index 指定默认首页文件(如 index.html

示例写法(可直接复制修改)

假设你有两个静态站点,分别通过 :8081:8082 访问:

server {listen 8081;server_name localhost;root /var/www/app-v1;index index.html;}server {listen 8082;server_name localhost;root /var/www/app-v2;index index.html;}

把这两段加到 nginx.confhttp { } 内部(通常在已有 server 块之后),保存即可。

别忘了配套操作

光改配置不够,还得确保环境就绪:

  1. 提前创建好 root 对应的目录,并放入 index.html,比如:

    mkdir -p /var/www/app-v1 && echo "App V1" > /var/www/app-v1/index.html

  2. 执行 nginx -t 检查语法是否正确,提示 success 才继续
  3. 运行 nginx -s reload(或 systemctl reload nginx)让配置生效
  4. 确认系统防火墙放行对应端口,例如 Ubuntu 上:ufw allow 8081

访问方式很简单

浏览器输入 http://你的服务器IP:8081 就能加载第一个站点,:8082 加载第二个。不需要改 hosts、不用 DNS、也不用证书,纯靠端口跳转。

热门栏目