在Ubuntu上,Nginx Web服务器将其文档存储在/var/www/html
中,该文档通常位于其余具有操作系统部分的根文件系统上。但有时,将文档根移动到另一个位置(例如单独安装的文件系统)会很有帮助。例如,如果您从同一个Nginx实例提供多个网站,则将每个网站的文档根目录放在其自己的卷上,这样您就可以根据特定网站或客户端的需求进行扩展。
在本指南中,您将Nginx文档根目录移动到新位置。
要完成本指南,您需要:
我们将在本教程中使用域名example.com,但您应将其替换为您自己的域名。
/mnt/volume-nyc3-01
目录作为新位置。您的新文档根位置可根据您的需要进行配置。如果要将文档根目录移动到其他存储设备,则需要在设备的挂载点下选择一个位置。在全新安装Nginx时,文档根目录位于/var/www/html
。但是,通过遵循先决条件指南,您创建了一个新的文档根目录/var/www/example.com/html
。您可能还有其他文档根。在此步骤中,我们将建立文档根目录的位置,并将相关文件复制到新位置。
您可以使用搜索文档根目录的位置grep
。让我们在/etc/nginx/sites-enabled
目录中搜索以限制我们对活动网站的关注。该-R
标志确保grep
将同时出打印带有root
指令的行和输出中的完整文件名:
grep -R "root" /etc/nginx/sites-enabled
如果您在新服务器上遵循先决条件教程,结果将如下所示:
/etc/nginx/sites-enabled/example.com: root /var/www/example.com/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/example.com;
如果您有预先存在的设置,则结果可能与此处显示的不同。在任何一种情况下,您都可以使用来自grep
的反馈来确保移动所需的文件并更新相应的配置文件。
现在您已确认文档根目录的位置,您可以使用rsync
将文件复制到新位置。使用该-a
标志会保留权限和其他目录属性,同时-v
提供详细输出,以便您可以跟踪同步的进度:
注意:确保目录上没有尾部斜杠,如果使用制表符完成,则可以添加斜杠。当有斜杠时,rsync
会将目录的内容转储到挂载点,而不是将其转移到包含html
的目录中。
sudo rsync -av /var/www/example.com/html /mnt/volume-nyc3-01
您将看到如下输出:
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配置以反映这些变化。
Nginx使用全局和特定于站点的配置文件。我们将为我们的example.com
项目修改我们的服务器块文件:/etc/nginx/sites-enabled/example.com
。
注意:请记住,在你的情况中,example.com
将是your_domain_name
,那么你将会修改第一步中你运行grep
命令时输出的服务器块文件。
首先在编辑器中打开/etc/nginx/sites-enabled/example.com
:
sudo nano /etc/nginx/sites-enabled/example.com
找到以新root
位置开头的行并使用新的根位置进行更新。在我们的例子中,这将是/mnt/volume-nyc3-01/html
:
server {
root /mnt/volume-nyc3-01/html;
index index.html index.htm index.nginx-debian.html;
. . .
}
. . .
请留意您在步骤1中grep
输出的原始文档根路径的任何其他位置,包括别名或重写。您还需要更新这些内容以反映新文档的根位置。
完成所有必要的更改后,保存并关闭文件。
完成配置更改后,可以重新启动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
服务器重新启动后,请访问受影响的站点并确保它们按预期工作。一旦你觉得一切都井然有序,不要忘记删除数据的原始副本:
sudo rm -Rf /var/www/example.com/html
您现在已成功将Nginx文档根目录移动到新位置。
在本教程中,我们介绍了如何将Nginx文档根目录更改为新位置。这可以帮助您进行基本的Web服务器管理,例如在单个服务器上有效管理多个站点。它还允许您利用网络块存储等替代存储设备,这有助于在需求变化时扩展网站。
更多Ubuntu教程请前往腾讯云+社区学习更多知识。
参考文献:《How To Move an Nginx Web Root to a New Location on Ubuntu 18.04》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有