当前位置:首页 > 服务器技术 > 正文

Nginx基于域名虚拟主机(手把手教你配置多网站共用一台服务器)

在搭建网站时,你是否想过:如何让一台服务器同时运行多个网站?答案就是使用 Nginx 虚拟主机。本教程将从零开始,详细讲解如何基于域名配置 Nginx 虚拟主机,即使你是完全的小白,也能轻松上手!

什么是基于域名的虚拟主机?

基于域名的虚拟主机(Name-based Virtual Host)是指在同一台服务器、同一个 IP 地址上,通过不同的域名来区分多个网站。当用户访问 site1.comsite2.com 时,虽然它们指向同一个 IP,但 Nginx 会根据请求头中的 Host 字段,返回对应网站的内容。

Nginx基于域名虚拟主机(手把手教你配置多网站共用一台服务器) Nginx虚拟主机 基于域名的虚拟主机 Nginx配置教程 Web服务器配置 第1张

准备工作

在开始之前,请确保你已完成以下步骤:

  • 已安装 Nginx(如未安装,可运行 sudo apt install nginxyum install nginx
  • 拥有至少两个域名(例如:example1.com 和 example2.com)
  • 域名已正确解析到你的服务器 IP 地址
  • 具备服务器 root 或 sudo 权限

步骤一:创建网站目录

为每个网站创建独立的根目录,用于存放网页文件:

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 虚拟主机

进入 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/

步骤四:测试并重载 Nginx

先检查配置文件是否有语法错误:

sudo nginx -t

如果显示 successful,说明配置无误。接着重载 Nginx 使配置生效:

sudo systemctl reload nginx

验证结果

现在,在浏览器中分别访问 http://site1.comhttp://site2.com,你应该能看到各自对应的欢迎页面!这说明 Nginx 基于域名的虚拟主机 已成功配置。

常见问题与 SEO 优化提示

- 确保 DNS 已正确解析,否则无法通过域名访问。
- 如果访问显示 403 错误,请检查目录权限:sudo chmod -R 755 /var/www
- 对于生产环境,建议配置 HTTPS(使用 Let's Encrypt 免费证书)
- 合理使用 Web服务器配置 可提升网站性能和安全性

掌握 Nginx虚拟主机基于域名的虚拟主机Nginx配置教程Web服务器配置 是运维和开发人员的必备技能。希望本教程对你有所帮助!