如何设置 Nginx 虚拟主机

在本教程中,我们将向您展示如何设置 Nginx 虚拟主机。 对于那些不知道的人,Nginx 等虚拟主机用于仅使用一台服务器运行两个或多个域或网站,您可以在本托管基础课程中了解更多信息。 这是一个简短的教程,向您展示如何在 Nginx Web 服务器上创建虚拟主机或服务器块。

本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到命令以获取 root 权限。 我将向您展示在您的 Linux 服务器上逐步设置 Nginx 虚拟主机。

先决条件

  • 运行以下操作系统之一的服务器:基于 RHEL,例如 CentOS、AlmaLinux 或 Rocky Linux。
  • 建议您使用全新的操作系统安装来防止任何潜在问题。
  • 对服务器的 SSH 访问(或者如果您在桌面上,则只需打开终端)。
  • 一种 non-root sudo user或访问 root user. 我们建议充当 non-root sudo user,但是,如果您在充当 root 时不小心,可能会损害您的系统。

设置 Nginx 虚拟主机

步骤 1. 在继续之前,请更新您的 Fedora 操作系统以确保所有现有软件包都是最新的。 使用此命令更新服务器包:

sudo dnf upgrade sudo dnf update

步骤 2. 安装 Nginx

默认情况下,Nginx 在默认基础存储库中可用。 然后我们可以使用以下命令安装 Nginx:

sudo dnf install nginx

使用以下命令验证安装:

nginx -v

输出:

nginx version: nginx/1.20.2

现在安装完成后我们需要启动Nginx服务器开始运行。 我们使用以下命令执行此操作:

sudo systemctl start nginx sudo systemctl enable nginx

步骤 3. 设置虚拟主机(服务器块)。

我们需要做的第一件事是为每个虚拟主机创建一个目录来存储不同的网站内容:

cd /var/www sudo mkdir -p idroot.us/{public_html,logs,stats} sudo mkdir -p idroot.org/{public_html,logs,stats}

接下来,为域创建 Nginx 虚拟主机(服务器块) idroot.us.

nano /etc/nginx/conf.d/idroot.us.conf

添加以下文件:

server {    listen  80;    server_name  idroot.us www.idroot.us;      access_log  /var/www/idroot.us/logs/access.log ;    error_log    /var/www/idroot.org/logs/error.log ;      location / {        root   /var/www/idroot.us/public_html;        index  index.php index.html index.htm;      }      error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /var/www/idroot.org/public_html;    }     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000   location ~ .php$ { fastcgi_pass   127.0.0.1:9000; fastcgi_index  index.php; root    /var/www/idroot.us/public_html; fastcgi_param  SCRIPT_FILENAME  /var/www/idroot.us/public_html$fastcgi_script_name; include fastcgi_params; }        location ~ /.ht {        deny  all;    } }

Save 和 close 文件。 之后,我们为域创建 Nginx 虚拟主机(服务器块) idroot.org.

nano /etc/nginx/conf.d/idroot.us.conf

添加以下文件:

server {    listen  80;    server_name  idroot.org www.idroot.org;      access_log  /var/www/idroot.org/logs/access.log ;    error_log    /var/www/idroot.org/logs/error.log ;      location / {        root   /var/www/idroot.org/public_html;        index  index.php index.html index.htm;      }      error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /var/www/idroot.org/public_html;    }     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000   location ~ .php$ { fastcgi_pass   127.0.0.1:9000; fastcgi_index  index.php; root    /var/www/idroot.org/public_html; fastcgi_param  SCRIPT_FILENAME  /var/www/idroot.org/public_html$fastcgi_script_name; include fastcgi_params; }      location ~ /.ht {        deny  all;    } }

编辑完虚拟主机文件后,请务必保存文件。 最后,如果没有发现问题,重新启动 Nginx 服务以应用更改:

nginx -t sudo systemctl restart nginx

笔记: 请确保所有域名都已传播并正确定向到您服务器的 IP 地址,否则您将无法检查您的新配置是否有效。

恭喜! 您已成功安装服务器块 Nginx。 感谢您使用本教程在 Linux 系统上安装虚拟主机 Nginx。 如需更多帮助或有用信息,我们建议您查看 Nginx 官方网站.