在nginx.conf的http块内添加多个server块,每个用listen指定唯一端口(如8081、8082),root指向对应站点目录,index指定首页文件,即可实现基于端口的虚拟主机;需创建目录、放index.html、nginx -t检测、reload生效并开放防火墙端口。
直接在 nginx.conf 的 http { } 块内添加多个 server 块,每个块用 listen 指定不同端口,并配好 root 和 index,就能实现基于端口的虚拟主机访问。它不依赖域名或 Host 头,只靠端口号区分请求。
每个 server 块代表一个独立端口服务,关键字段必须明确:
listen 后跟唯一端口号(如 8081、8082),不能重复server_name 可设为 localhost 或留空,该字段在此场景下不参与匹配root 指向该端口对应站点的根目录(如 /var/www/site-a)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.conf 的 http { } 内部(通常在已有 server 块之后),保存即可。
光改配置不够,还得确保环境就绪:
root 对应的目录,并放入 index.html,比如:mkdir -p /var/www/app-v1 && echo "App V1" > /var/www/app-v1/index.html
nginx -t 检查语法是否正确,提示 success 才继续nginx -s reload(或 systemctl reload nginx)让配置生效ufw allow 8081
浏览器输入 http://你的服务器IP:8081 就能加载第一个站点,:8082 加载第二个。不需要改 hosts、不用 DNS、也不用证书,纯靠端口跳转。