如何在 Debian 10 上配置 Nginx 托管多个网站

关于创建 Apache 虚拟主机,牛奇网已经发布了很多相关文章。虚拟主机是 Apache 的一个术语,但 Nginx 用户也可以使用它。Nginx 相对应的术语应该是 server 块,其与虚拟主机具有相同的含义,指的是能够在单个服务器上托管多个网站的功能。

如何在 Debian 10 上配置 Nginx 托管多个网站
如何在 Debian 10 上配置 Nginx 托管多个网站

在本指南中,牛奇网将向您介绍,如在 Debian 10 系统上配置 Nginx 虚拟主机。

本文的教程基于以下环境条件:

  • 域名已经解析到公网服务器 IP。
  • 已经在 Debian 系统上安装了 Nginx 。如果尚未安装 Nginx ,可以参考:如何在 Debian 10 上部署 LEMP 网站环境
  • 以 root 用户或具有 sudo 权限的用户身份登录。

创建多网站目录

要在同一个服务器上托管多个网站,需要为每个网站创建单独的目录。一般情况下,我们常将网站放置在 /var/www/ 目录下。本文中,我们在 /var/www/ 目录下创建三个分别以各网站域名为名称的文件夹,作为各个网站的根目录。

部署多个网站的示例目录结构:

/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html
├── domain3.com
│   └── public_html

在上面的示例中,为在服务器上托管的每个网站,创建各自单独的目录。在每个域名目录下,分别创建一个名为public_html 的子目录作为网站根目录。

分别为每个网站创建根目录

运行以下命令为 domain1.com 创建网站根目录:

sudo mkdir -p /var/www/domain1.com/public_html

运行以下命令为 domain2.com 创建网站根目录:

sudo mkdir -p /var/www/domain2.com/public_html

运行以下命令为 domain3.com 创建网站根目录:

sudo mkdir -p /var/www/domain3.com/public_html

在每个根目录下创建临时 HTML 文件

接下来,在三个根目录中各创建一个名为 index.html 的文件:

sudo nano /var/www/domain1.com/public_html/index.html
sudo nano /var/www/domain2.com/public_html/index.html
sudo nano /var/www/domain3.com/public_html/index.html

通过编辑器将下面的代码复制到三个文件:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to domain1.com</title>
  </head>
  <body>
    <h1>Success! domain1.com home page!</h1>
  </body>
</html>

更改网站根目录的所有权

进行权限配置,将该根目录的所有权更改为 Nginx 用户 ( www-data ):

sudo chown -R www-data: /var/www/domain1.com
sudo chown -R www-data: /var/www/domain2.com
sudo chown -R www-data: /var/www/domain3.com

创建服务器块

在 Debian 系统上,Nginx 服务器块配置文件存储在 /etc/nginx/sites-available 目录中。要激活配置文件,需要将文件符号链接到 /etc/nginx/sites-enabled/ 目录。

使用文本编辑器创建三个服务器配置文件:

sudo nano /etc/nginx/sites-available/domain1.com.conf
sudo nano /etc/nginx/sites-available/domain2.com.conf
sudo nano /etc/nginx/sites-available/domain3.com.conf

将以下的代码内容复制到各个配置文件中:

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

    root /var/www/domain1.com/public_html;

    index index.html;

    server_name domain1.com www.domain1.com;

     access_log /var/log/nginx/domain1.com.access.log;
     error_log /var/log/nginx/domain1.com.error.log;

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

配置文件可以任意命名,为了便于记忆和识别,最好以对应的域名来命名。复制到各个配置文件中后,要将其中对应的域名进行更改。

创建到 sites-enabled 目录的符号链接,来启用新的服务器块配置文件:

sudo ln -s /etc/nginx/sites-available/domain1.com.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/domain2.com.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/domain3.com.conf /etc/nginx/sites-enabled/

通过运行下面的命令,测试 Nginx 配置的语法是否正确:

sudo nginx -t

如果没有错误,输出将如下所示:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启 Nginx 服务,以使更改生效:

sudo systemctl restart nginx

要验证服务器块是否正常工作,在浏览器中访问各个域名。

总结

通过文章中的内容,牛奇网向您介绍了如何创建 Nginx 服务器块,并在单个 Debian 服务器上托管多个网站

作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/set-up-nginx-server-blocks-on-debian-10/

(0)
牛奇网牛奇网
上一篇 2022年1月26日 下午10:22
下一篇 2022年1月27日 上午10:59

相关推荐

发表回复

登录后才能评论