关于创建 Apache 虚拟主机,牛奇网已经发布了很多相关文章。虚拟主机是 Apache 的一个术语,但 Nginx 用户也可以使用它。Nginx 相对应的术语应该是 server
块,其与虚拟主机具有相同的含义,指的是能够在单个服务器上托管多个网站的功能。
在本指南中,牛奇网将向您介绍,如在 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/