0Pricing
Linux Server Deployment & SSH Mastery · 课时

虚拟主机基础配置

设置虚拟主机(或服务器块),使用不同的域名在同一台服务器上托管多个网站。

虚拟主机基础配置 是 CoddyKit 上的免费 Linux Server Deployment & SSH Mastery 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Server Deployment & SSH Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。

托管多个 website

想象一下,您有一台功能强大的服务器,但希望托管多个不同的 website,每个 website 都有自己的域名(例如 myshop.com 和 myblog.com)。

如何让一台服务器高效处理这些 website,而不必为每个 website 准备一台单独的机器?

什么是虚拟主机

这正是虚拟主机(Apache)或服务器块(Nginx)发挥作用的地方!

  • 它们是配置单元,允许一台 Web 服务器托管多个域名。
  • 每个域名都可以拥有自己的文档根目录(存放其文件的位置)、日志和特定设置。
  • 这样可以节省资源并简化服务器管理。

Apache 虚拟主机设置

在 Apache 中,虚拟主机配置通常存储在特定目录中的 .conf 文件内:

  • /etc/apache2/sites-available/:包含所有可用的虚拟主机配置。
  • /etc/apache2/sites-enabled/:包含当前已启用配置的符号链接。

我们使用 a2ensite 等命令启用它们。

Apache:基本虚拟主机

这是一个简单的 Apache 虚拟主机配置。此文件应创建在 sites-available 中。

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName myfirstsite.com
    ServerAlias www.myfirstsite.com
    DocumentRoot /var/www/myfirstsite
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Apache:配置步骤

要为 myfirstsite.com 设置 Apache 虚拟主机,请执行以下操作:

  1. 为网站文件创建目录。
  2. 创建虚拟主机配置文件。
  3. 启用网站并重新加载 Apache。

下面来看看前两个步骤所需的命令:

sudo mkdir -p /var/www/myfirstsite/html
sudo chown -R $USER:$USER /var/www/myfirstsite/html
sudo nano /etc/apache2/sites-available/myfirstsite.conf

Apache:启用并重新加载

创建并保存 .conf 文件后,使用以下命令激活配置并应用更改:

  • sudo a2ensite myfirstsite.conf:在 sites-enabled 中创建符号链接。
  • sudo apache2ctl configtest:检查 Apache 配置中的语法错误。
  • sudo systemctl reload apache2:应用新配置,而无需重启服务器。
sudo a2ensite myfirstsite.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

Nginx 的服务器块设置

Nginx 使用服务器块,其功能与 Apache 的虚拟主机非常相似。它们也使用类似的目录结构:

  • /etc/nginx/sites-available/:存储所有服务器块配置。
  • /etc/nginx/sites-enabled/:包含指向已启用服务器块的符号链接。

我们不使用辅助命令,而是手动创建符号链接。

Nginx:基本服务器块

这是为 mysecondsite.com 配置的基本 Nginx 服务器块。此文件应创建在 sites-available 中。

server {
    listen 80;
    listen [::]:80;

    root /var/www/mysecondsite/html;
    index index.html index.htm;

    server_name mysecondsite.com www.mysecondsite.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

Nginx:配置步骤

要为 mysecondsite.com 设置 Nginx 服务器块,请执行以下操作:

  1. 为网站文件创建目录。
  2. 创建服务器块配置文件。
  3. 创建符号链接并重新加载 Nginx。

以下是前两个步骤所需的命令:

sudo mkdir -p /var/www/mysecondsite/html
sudo chown -R $USER:$USER /var/www/mysecondsite/html
sudo nano /etc/nginx/sites-available/mysecondsite

Nginx:启用并重新加载

创建并保存服务器块文件后,使用以下命令激活配置并应用更改:

  • sudo ln -s /etc/nginx/sites-available/mysecondsite /etc/nginx/sites-enabled/:创建符号链接。
  • sudo nginx -t:检查 Nginx 配置是否存在语法错误。
  • sudo systemctl reload nginx:应用新配置,而无需重启。
sudo ln -s /etc/nginx/sites-available/mysecondsite /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

虚拟主机检查

您已经学会了如何配置 Web 服务器来托管多个网站。现在来检查您对内容的理解。

回顾:一个服务器托管多个网站

做得很好!您已经掌握了配置虚拟主机(Apache)和服务器块(Nginx)的基本要点。

  • 这些配置可以让您在单个服务器上高效托管多个网站。
  • 现在您已经知道如何为不同的域名设置相互独立的配置。
  • 这是进行 Web 服务器管理以及部署多个应用程序的一项基础技能。

常见问题解答

「虚拟主机基础配置」课时是免费的吗?

是的 — 「虚拟主机基础配置」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Linux Server Deployment & SSH Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。

「虚拟主机基础配置」这节课中我会学到什么?

设置虚拟主机(或服务器块),使用不同的域名在同一台服务器上托管多个网站。 你通过在浏览器中直接运行的动手代码来练习 Linux Server Deployment & SSH Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Linux Server Deployment & SSH Mastery 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Linux Server Deployment & SSH Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「虚拟主机基础配置」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Linux Server Deployment & SSH Mastery 课中编写并运行代码吗?

能。每节 Linux Server Deployment & SSH Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 安装 Nginx/Apache
  2. 托管静态网站
  3. 虚拟主机基础配置
  4. 使用 Let's Encrypt 启用 HTTPS
← 返回 Linux Server Deployment & SSH Mastery