在使用 Nginx 部署 Web 服务时,你可能会遇到需要在同一台服务器上运行多个网站的情况。这时,Nginx 的虚拟主机功能就派上用场了。本文将详细介绍如何通过 基于端口的虚拟主机 来实现这一目标,即使你是完全的新手,也能轻松上手!
什么是基于端口的虚拟主机?
虚拟主机(Virtual Host)是 Web 服务器用来托管多个域名或网站的技术。Nginx 支持三种类型的虚拟主机:
- 基于 IP 地址
- 基于域名(最常见)
- 基于端口(本文重点)
基于端口的虚拟主机是指:同一个 IP 地址,通过监听不同的端口号来区分不同的网站。例如:
http://192.168.1.100:80→ 网站 Ahttp://192.168.1.100:8080→ 网站 B
准备工作
在开始之前,请确保你已安装 Nginx。如果没有,请先执行以下命令(以 Ubuntu/Debian 为例):
sudo apt updatesudo apt install nginx 步骤一:创建两个网站目录
我们假设要部署两个简单的静态网站:
sudo mkdir -p /var/www/site1sudo mkdir -p /var/www/site2 然后为每个站点创建一个简单的首页文件:
echo "<h2>欢迎访问网站 1</h2>" | sudo tee /var/www/site1/index.htmlecho "<h2>欢迎访问网站 2</h2>" | sudo tee /var/www/site2/index.html 步骤二:配置 Nginx 虚拟主机
进入 Nginx 配置目录,通常位于 /etc/nginx/sites-available/。我们将创建两个配置文件:
1. 配置 site1(监听 80 端口)
sudo nano /etc/nginx/sites-available/site1 写入以下内容:
server { listen 80; server_name localhost; root /var/www/site1; index index.html; location / { try_files $uri $uri/ =404; }} 2. 配置 site2(监听 8080 端口)
sudo nano /etc/nginx/sites-available/site2 写入以下内容:
server { listen 8080; server_name localhost; root /var/www/site2; index index.html; location / { try_files $uri $uri/ =404; }} 步骤三:启用配置并重启 Nginx
创建软链接以启用站点:
sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/sudo ln -s /etc/nginx/sites-available/site2 /etc/nginx/sites-enabled/ 检查配置是否正确:
sudo nginx -t 如果显示 syntax is ok 和 test is successful,说明配置无误。
最后,重启 Nginx 使配置生效:
sudo systemctl restart nginx 步骤四:测试访问
现在你可以通过浏览器访问以下地址:
- http://你的服务器IP:80 → 显示“欢迎访问网站 1”
- http://你的服务器IP:8080 → 显示“欢迎访问网站 2”
注意:如果使用云服务器(如阿里云、腾讯云),请确保安全组已开放 8080 端口。
常见问题与注意事项
- 端口冲突:确保所选端口未被其他程序占用。
- 防火墙设置:Linux 防火墙(如 ufw)可能阻止非标准端口,需手动放行:
sudo ufw allow 8080 - SEO 友好性:虽然 Nginx端口虚拟主机 技术可行,但生产环境更推荐使用 基于域名的虚拟主机,因为用户更习惯访问标准端口(80/443)。
总结
通过本文,你已经学会了如何使用 Nginx 多站点配置 中的 基于端口的虚拟主机 功能。这项技术非常适合开发测试环境,或者在无法使用多个域名的情况下快速部署多个应用。掌握 Nginx服务器配置 是运维和开发人员的重要技能,希望这篇教程能为你打下坚实基础!
关键词回顾:Nginx端口虚拟主机, Nginx多站点配置, 基于端口的虚拟主机, Nginx服务器配置

