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