在搭建网站时,你是否想过:如何让一台服务器同时运行多个网站?答案就是使用 Nginx 虚拟主机。本教程将从零开始,详细讲解如何基于域名配置 Nginx 虚拟主机,即使你是完全的小白,也能轻松上手!
基于域名的虚拟主机(Name-based Virtual Host)是指在同一台服务器、同一个 IP 地址上,通过不同的域名来区分多个网站。当用户访问 site1.com 和 site2.com 时,虽然它们指向同一个 IP,但 Nginx 会根据请求头中的 Host 字段,返回对应网站的内容。
在开始之前,请确保你已完成以下步骤:
sudo apt install nginx 或 yum install nginx)为每个网站创建独立的根目录,用于存放网页文件:
sudo mkdir -p /var/www/site1.com/htmlsudo mkdir -p /var/www/site2.com/html 然后为每个目录创建一个简单的测试页面:
echo "<h2>欢迎访问 Site 1</h2>" | sudo tee /var/www/site1.com/html/index.htmlecho "<h2>欢迎访问 Site 2</h2>" | sudo tee /var/www/site2.com/html/index.html 进入 Nginx 的站点配置目录(通常为 /etc/nginx/sites-available/),为每个网站创建独立的配置文件:
配置 site1.com:
sudo nano /etc/nginx/sites-available/site1.com 在文件中写入以下内容:
server { listen 80; server_name site1.com www.site1.com; root /var/www/site1.com/html; index index.html; location / { try_files $uri $uri/ =404; }} 配置 site2.com:
sudo nano /etc/nginx/sites-available/site2.com 内容类似,只需修改域名和路径:
server { listen 80; server_name site2.com www.site2.com; root /var/www/site2.com/html; index index.html; location / { try_files $uri $uri/ =404; }} Nginx 默认只加载 sites-enabled 目录下的配置。我们需要创建软链接来启用站点:
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/ 先检查配置文件是否有语法错误:
sudo nginx -t 如果显示 successful,说明配置无误。接着重载 Nginx 使配置生效:
sudo systemctl reload nginx 现在,在浏览器中分别访问 http://site1.com 和 http://site2.com,你应该能看到各自对应的欢迎页面!这说明 Nginx 基于域名的虚拟主机 已成功配置。
- 确保 DNS 已正确解析,否则无法通过域名访问。
- 如果访问显示 403 错误,请检查目录权限:sudo chmod -R 755 /var/www
- 对于生产环境,建议配置 HTTPS(使用 Let's Encrypt 免费证书)
- 合理使用 Web服务器配置 可提升网站性能和安全性
掌握 Nginx虚拟主机、基于域名的虚拟主机、Nginx配置教程 和 Web服务器配置 是运维和开发人员的必备技能。希望本教程对你有所帮助!
本文由主机测评网于2025-11-30发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025111471.html