介绍
在Ubuntu上,在默认情况下,Nginx的Web服务器中存储其文件/var/www/html
,通常位于根文件系统与操作系统的其余部分。 有时,尽管将文档根目录移动到其他位置(如单独安装的文件系统)很有帮助。 例如,如果您从同一Nginx实例提供多个网站,将每个站点的文档根目录放在自己的卷上,您可以根据特定站点或客户端的需求进行扩展。
在本指南中,我们将向您展示如何将Nginx文档根目录移动到新位置。
先决条件
要完成本指南,您需要:
一个Ubuntu 16.04服务器与非root用户
sudo
权限 。 您可以了解更多有关如何设置这些权限的用户在我们与Ubuntu 16.04的初始服务器安装指南。一个Nginx的Web服务器 :如果您尚未设置一个,深入的文章, 如何在Ubuntu 16.04安装Nginx的 ,可以指导你。
为您的文档根目录的新位置 :新文档根位置是完全可配置根据您的需求。 如果将文档根目录移动到其他存储设备,则需要在设备的装载点下选择一个位置。 在这个例子中,我们将使用
/mnt/volume-nyc1-01
目录。 如果您在使用DigitalOcean块存储, 该指南将告诉你如何使用这个教程,然后再继续安装驱动器。
第1步 - 将文件复制到新位置
在全新安装Nginx的,文档根目录位于/var/www/html
。 但是,如果您使用现有的服务器,则可能有明显不同的设置,包括相应的服务器块指令中的多个文档根。
您可以搜索的使用附加文档根目录位置grep
。 我们将在搜索/etc/nginx/sites-enabled
目录,我们的重点限制在活性位点。 该-R
标志,可以确保grep
将打印与该行root
指令,并在其输出的文件名:
grep "root" -R /etc/nginx/sites-enabled
结果将类似于下面的输出,尽管结果的名称和数量在现有安装中可能不同:
Output/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/html /mnt/volume-nyc1-01
现在我们准备更新配置。
第2步 - 更新配置文件
Nginx使用全局和站点特定的配置文件。 有关配置文件的层次背景,看看如何配置的Nginx Web服务器上的虚拟专用服务器 。
如果你使用现有的安装工作,你应该修改先前与找到的文件grep
命令。 在我们的例子中,我们要看看所谓的默认配置文件default
。
在编辑器中打开文件:
sudo nano /etc/nginx/sites-enabled/default
然后,发现开头的行root
并用新的位置更新。
注意:您应该寻找其他地方的原始路径出现并改变那些到新的位置为好。 除了root,你可能会发现别名和重写等需要更新的东西。
. . .
# include snippets/snakeoil.conf;
root /mnt/volume-nyc1-01/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
. . .
完成所有必要的更改后,保存并关闭文件。
第3步 - 重新启动Nginx
完成配置更改后,可以使用此命令确保语法正确:
sudo nginx -t
如果一切顺利,它应该返回:
Outputnginx: 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/html
结论
在本教程中,我们介绍了如何将Nginx文档根更改为新位置。 这可以帮助您进行基本的Web服务器管理,例如在单个服务器上有效地管理多个站点。 它还允许您利用替代存储设备,如网络块存储,这是在其网站需求变化时扩展网站的重要步骤。
如果你管理繁忙或成长的网站,你可能有兴趣在学习如何建立与Nginx的HTTP / 2 ,以利用其高转院速度的内容。 您还可以了解更多有关提高的这种比较的生产经验五种方式来改善你的生产Web应用程序服务器设置 。