如何变更 nginx 网站的根目录(调整nginx放网页的目录)

在 Ubuntu 系统上,Nginx Web 服务器默认的网站存储目录为 /var/www/html。但是,有时我们想要将网站根目录移动到另一个位置,例如,想要 Nginx 实例同时配置多个网站,需要将每个网站根目录放在特定的位置。在本文中,我们将介绍如何设置 Nginx 文档根目录的位置。

其他相关文章:

如何在 Ubuntu 16.04 上配置 Nginx 虚拟主机(托管多个网站)

如何列出Apache Web服务器上的所有虚拟主机

手动在Ubuntu 18.04上配置Apache虚拟主机

如何变更 nginx 网站的根目录(调整nginx放网页的目录)
如何变更 nginx 网站的根目录(调整nginx放网页的目录)

本文实例环境:

  • Ubuntu 20.04 服务器和具有 sudo 权限的非 root 用户;
  • 已安装 Nginx ;
  • 服务器已配置TLS/SSL 证书;
  • 本文中使用域名为 your_domain
  • 目标网站目录为:/mnt/volume-nyc3-01。

步骤 1 — 将文件复制到新位置

如果是全新安装的 Nginx ,默认的网站文档根目录位于 /var/www/html。 我们将建立一个新的网站文档根目录  /mnt/volume-nyc3-01,并将网站相关文件复制到该位置。

可以使用 grep 命令搜索文档根目录的位置。让我们在 /etc/nginx/sites-enabled 目录中搜索已激活站点的配置文件。-R 标签可以确保 grep 将包含 root 指令的行打印出来:

grep -R "root" /etc/nginx/sites-enabled

将返回如下所示:

Output
/etc/nginx/sites-enabled/your_domain:           root /var/www/your_domain/html;
/etc/nginx/sites-enabled/default:               root /var/www/html;
/etc/nginx/sites-enabled/default:               # deny access to .htaccess files, if Apache's document root
/etc/nginx/sites-enabled/default:#              root /var/www/your_domain;

如果配置不同,返回的结果可能与此处略有不同。

如果现在已经确认了网站文档根目录的位置,可以使用 rsync 命令将网站根目录下的文件拷贝到新的位置。使用 -a标签可以保留权限和其他目录属性,使用 -v 标签提供详细输出,以便可以跟踪同步进度:

注意:确保目录尾部没有斜杠,如果使用制表符补全,可能会添加斜杠。当尾部有斜杠时,rsync 会将原目录的内容转储到挂载点而不是将其传输到目标目录中。

sudo rsync -av /var/www/your_domain/html /mnt/volume-nyc3-01

将会看到如下输出:

Output
sending incremental file list
created directory /mnt/volume-nyc3-01
html/
html/index.html

sent 318 bytes  received 39 bytes  714.00 bytes/sec
total size is 176  speedup is 0.49

复制完成后,让我们继续修改 Nginx 配置。

步骤 2 — 更新配置文件

Nginx 有一个全局的配置文件,如果要创建多个站点,每个站点会有一个单独的配置文件。我们将为我们名为 your_domain 的项目修改服务器配置文件:/etc/nginx/sites-enabled/your_domain

注意:切记将 your_domain 替换为自己的域名,在上一步中我们使用 grep 查看到的 /etc/nginx/sites-enabled/your_domain 文件就是该站点的配置文件 。

首先,在编辑器中打开配置文件:

/etc/nginx/sites-enabled/your_domain

sudo nano /etc/nginx/sites-enabled/your_domain

找到以 root 开头的行,并用选定的网站目录替换它。在我们的例子中,选定的网站目录为 /mnt/volume-nyc3-01/html

/etc/nginx/sites-enabled/your_domain

server {

        root /mnt/volume-nyc3-01/html;
        index index.html index.htm index.nginx-debian.html;
        . . .
}
. . .

请留意在步骤 1 中使用 grep 命令输出的原始文档根路径的其他地方,包括别名或重写。还需要更新这些配置以使新的文档根目录生效。

完成更改后,保存并关闭文件。

第 3 步 – 重新启动 Nginx

完成配置更改后,重新启动 Nginx 并测试结果。

首先,检查是否存在语法错误:

sudo nginx -t

如果一切正常,会返回类似下面的内容:

Output
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 web服务器重新启动后,访问站点看一下是否正常。如果没有什么其他问题,可以删除原根目录下的数据:

sudo rm -Rf /var/www/your_domain/html

现在我们就已成功将 Nginx 文档根目录移动到新的位置了。

作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/move-nginx-web-root-to-new-location/

发表评论

登录后才能评论