前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
在 Ubuntu 上,默认情况下,Nginx web 服务器将其文档存储在 /var/www/html
目录中,通常位于根文件系统与操作系统的其余部分一起。然而,有时将文档根目录移动到另一个位置会很有帮助,比如一个单独的挂载文件系统。例如,如果您从同一个 Nginx 实例中为多个网站提供服务,将每个站点的文档根目录放在自己的卷上,可以根据特定站点或客户的需求进行扩展。
在本指南中,我们将向您展示如何将 Nginx 文档根目录移动到新位置。
先决条件
要完成本指南,您需要:
-
一个具有
sudo
权限的非根用户的 Ubuntu 16.04 服务器。您可以在我们的《在 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
结果将看起来类似于下面的输出,尽管现有安装的名称和结果数量可能不同:
/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
提供详细输出,以便您可以跟踪进度。
sudo rsync -av /var/www/html /mnt/volume-nyc1-01
现在我们准备更新配置。
步骤 2 —— 更新配置文件
Nginx 使用全局和站点特定的配置文件。有关配置文件层次结构的背景信息,请参阅《如何在虚拟专用服务器上配置 Nginx Web 服务器》。
如果您正在处理现有安装,应修改您之前使用 grep
命令找到的文件。在我们的示例中,我们将查看名为 default
的默认配置文件。
在编辑器中打开文件:
sudo nano /etc/nginx/sites-enabled/default
然后,找到以 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
如果一切正常,它应返回:
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/html
结论
在本教程中,我们介绍了如何将 Nginx 文档根目录更改为新位置。这可以帮助您进行基本的 Web 服务器管理,例如有效地在单个服务器上管理多个站点。它还允许您利用替代存储设备,如网络块存储,这是在网站需求发生变化时扩展网站的重要步骤。
如果您正在管理一个繁忙或不断增长的网站,您可能有兴趣学习如何设置 Nginx 与 HTTP/2 以利用其高传输速度的内容。您还可以通过比较五种改善生产 Web 应用服务器设置的方法来了解更多关于改善生产体验的信息。
标签:Nginx,16.04,etc,nginx,文档,服务器,根目录 From: https://blog.csdn.net/rubys007/article/details/142794721