nginx基于端口的虚拟主机配置核心是为每个server块指定唯一listen端口、独立root目录及index文件;需创建对应站点目录、编辑nginx.conf添加多server块、执行nginx -t验证并reload生效,最后通过ip:端口直接访问。

直接在 Nginx 中配置基于端口的虚拟主机,核心是让不同 server 块监听不同端口,并指向各自独立的网站目录。不需要域名解析,也不依赖多 IP,适合本地测试、内网服务或开发环境快速隔离多个站点。
准备独立的网站目录
每个端口对应一个站点,需为每个站点创建专属根目录,并放入测试页面:
- 创建目录:比如
mkdir -p /usr/local/nginx/html/port8081 /usr/local/nginx/html/port8082 - 写入首页:分别执行
echo "Site on 8081" > /usr/local/nginx/html/port8081/index.html和echo "Site on 8082" > /usr/local/nginx/html/port8082/index.html - 确保 Nginx 进程有读取权限(一般默认即可;若报错可加
chown -R nginx:nginx /usr/local/nginx/html/port*)
修改 Nginx 主配置文件
编辑 /usr/local/nginx/conf/nginx.conf(路径依安装方式可能为 /etc/nginx/nginx.conf),在 http { } 块内添加两个 server 块:
- 第一个监听 8081 端口:
server {<br> listen 8081;<br> server_name localhost;<br> location / {<br> root /usr/local/nginx/html/port8081;<br> index index.html;<br> }<br>} - 第二个监听 8082 端口:
server {<br> listen 8082;<br> server_name localhost;<br> location / {<br> root /usr/local/nginx/html/port8082;<br> index index.html;<br> }<br>} - 注意:
server_name可保持为localhost或留空,因端口已区分,域名不参与路由
检查并重载配置
避免语法错误导致服务中断,务必按顺序操作:
- 验证配置是否合法:
nginx -t—— 输出success才继续 - 重载配置(不中断服务):
nginx -s reload(或systemctl reload nginx) - 确认端口监听状态:
ss -tlnp | grep ':8081\|:8082',应看到 nginx 进程监听对应端口
访问与验证
浏览器直接用 IP 加端口访问即可,无需改 hosts 或 DNS:
-
http://你的服务器IP:8081→ 显示 “Site on 8081” -
http://你的服务器IP:8082→ 显示 “Site on 8082” - 如无法访问,检查防火墙是否放行端口:
firewall-cmd --permanent --add-port=8081/tcp(CentOS)或ufw allow 8081(Ubuntu),然后 reload 防火墙











