当前位置:首页 > Ubuntu > 正文

Ubuntu虚拟主机配置指南(手把手教你搭建多站点Web服务器)

在本教程中,我们将详细介绍如何在 Ubuntu 系统上配置虚拟主机(Virtual Host),让你的服务器能够同时托管多个网站。无论你是刚接触 Linux 的小白,还是有一定经验的开发者,这篇指南都能帮助你轻松完成 Ubuntu虚拟主机配置

什么是虚拟主机?

虚拟主机是一种 Web 服务器功能,允许你在同一台物理服务器上运行多个独立的网站。每个网站可以拥有自己的域名、文档根目录和配置规则。常见的 Web 服务器软件如 Apache 和 Nginx 都支持虚拟主机功能。

Ubuntu虚拟主机配置指南(手把手教你搭建多站点Web服务器) Ubuntu虚拟主机配置 Apache虚拟主机设置 Nginx虚拟主机教程 Linux网站托管 第1张

准备工作

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

  • 一台已安装 Ubuntu(推荐 20.04 或 22.04 LTS)的服务器
  • 具有 sudo 权限的用户账户
  • 已安装 Apache 或 Nginx(本教程将分别介绍两种方式)
  • 域名(可选,测试时可用本地 hosts 文件模拟)

方法一:使用 Apache 配置虚拟主机

首先,确保 Apache 已安装:

sudo apt updatesudo apt install apache2 -y

接下来,为你的第一个网站创建目录:

sudo mkdir -p /var/www/site1.example.com/public_html

设置目录权限:

sudo chown -R $USER:$USER /var/www/site1.example.com/public_htmlsudo chmod -R 755 /var/www

创建一个简单的测试页面:

echo "<h2>欢迎访问 site1.example.com!</h2>" \| sudo tee /var/www/site1.example.com/public_html/index.html

现在创建 Apache 虚拟主机配置文件:

sudo nano /etc/apache2/sites-available/site1.example.com.conf

在文件中粘贴以下内容:

<VirtualHost *:80>    ServerName site1.example.com    ServerAlias www.site1.example.com    DocumentRoot /var/www/site1.example.com/public_html    <Directory /var/www/site1.example.com/public_html>        Options Indexes FollowSymLinks        AllowOverride All        Require all granted    </Directory>    ErrorLog ${APACHE_LOG_DIR}/site1_error.log    CustomLog ${APACHE_LOG_DIR}/site1_access.log combined</VirtualHost>

启用站点并重载 Apache:

sudo a2ensite site1.example.com.confsudo systemctl reload apache2

方法二:使用 Nginx 配置虚拟主机

如果你偏好使用 Nginx,也可以轻松实现 Nginx虚拟主机教程 中的操作。

安装 Nginx:

sudo apt updatesudo apt install nginx -y

创建网站目录(与 Apache 类似):

sudo mkdir -p /var/www/site2.example.com/html

设置权限并创建测试页面:

sudo chown -R $USER:$USER /var/www/site2.example.com/htmlecho "<h2>欢迎访问 site2.example.com!</h2>" \| sudo tee /var/www/site2.example.com/html/index.html

创建 Nginx 虚拟主机配置文件:

sudo nano /etc/nginx/sites-available/site2.example.com

填入以下配置:

server {    listen 80;    listen [::]:80;    root /var/www/site2.example.com/html;    index index.html index.htm;    server_name site2.example.com www.site2.example.com;    location / {        try_files $uri $uri/ =404;    }}

启用站点:

sudo ln -s /etc/nginx/sites-available/site2.example.com /etc/nginx/sites-enabled/sudo nginx -t   # 测试配置是否正确sudo systemctl reload nginx

本地测试(无需真实域名)

如果你没有真实域名,可以在本地电脑的 hosts 文件中添加映射:

# Windows: C:\Windows\System32\drivers\etc\hosts# macOS/Linux: /etc/hosts你的服务器IP地址 site1.example.com你的服务器IP地址 site2.example.com

总结

通过本教程,你已经掌握了在 Ubuntu 上配置 Apache 和 Nginx 虚拟主机的基本方法。无论是用于开发测试还是生产环境,Apache虚拟主机设置Linux网站托管 都是运维和开发人员必备的核心技能。希望这篇 Ubuntu虚拟主机配置 指南对你有所帮助!

如有疑问,欢迎在评论区留言交流!