如何在 Ubuntu 16.04 上将 Nginx Web 根移动到新位置

2023-11-09

介绍

在 Ubuntu 上,默认情况下,Nginx Web 服务器将其文档存储在/var/www/html,它通常与操作系统的其余部分一起位于根文件系统上。但有时,将文档根移动到另一个位置会很有帮助,例如单独安装的文件系统。例如,如果您从同一个 Nginx 实例提供多个网站服务,则将每个网站的文档根目录放在自己的卷上,这样您就可以根据特定网站或客户端的需求进行扩展。

在本指南中,我们将向您展示如何将 Nginx 文档根移动到新位置。

先决条件

要完成本指南,您将需要:

  • 具有非 root 用户的 Ubuntu 16.04 服务器sudo特权。您可以在我们的文章中详细了解如何设置具有这些权限的用户使用 Ubuntu 16.04 进行初始服务器设置 guide.

  • Nginx Web 服务器:如果您还没有设置,请参阅深入文章,如何在 Ubuntu 16.04 上安装 Nginx,可以指导您。

  • 文档根目录的新位置:新文档根位置完全可以根据您的需要进行配置。如果要将文档根目录移动到其他存储设备,您将需要选择设备安装点下的位置。在此示例中,我们将使用/mnt/volume-nyc1-01目录。如果您在 DigitalOcean 上使用块存储,本指南在继续本教程之前,将向您展示如何安装驱动器。

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

在全新安装的 Nginx 上,文档根目录位于/var/www/html。但是,如果您正在使用现有服务器,则可能会有显着不同的设置,包括相应服务器块指令中的多个文档根。

您可以使用以下命令搜索其他文档根目录的位置grep。我们将在/etc/nginx/sites-enabled目录以将我们的注意力限制在活动站点上。这-R标志确保grep将打印这两个行root指令及其输出中的文件名:

  1. 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提供详细输出,以便您可以跟踪进度。

Note:确保目录上没有尾部斜杠,如果使用制表符补全,则可能会添加尾部斜杠。当尾部有斜杠时,rsync会将目录的内容转储到安装点,而不是将其传输到包含的目录中html目录:

  1. sudo rsync -av /var/www/html /mnt/volume-nyc1-01

现在我们准备好更新配置了。

第 2 步 — 更新配置文件

Nginx 使用全局配置文件和站点特定配置文件。有关配置文件层次结构的背景信息,请查看如何在虚拟专用服务器上配置 Nginx Web 服务器.

如果您正在使用现有安装,则应该使用以下命令修改之前找到的文件grep命令。在我们的示例中,我们将查看名为的默认配置文件default.

在编辑器中打开文件:

  1. sudo nano/etc/nginx/sites-enabled/default

然后,找到以以下内容开头的行root 并使用新位置更新它。

Note:您应该查找原始路径显示的其他位置,并将它们也更改为新位置。除了根之外,您可能还会发现别名和重写等内容也需要更新。

/etc/nginx/sites-enabled/default
. . .
       # 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

完成配置更改后,您可以使用此命令确保语法正确:

  1. 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:

  1. sudosystemctl 重新启动 nginx

服务器重新启动后,访问受影响的站点并确保它们按预期工作。一旦您觉得一切都井然有序,请不要忘记删除数据的原始副本。

  1. sudo rm -Rf/var/www/html

结论

在本教程中,我们介绍了如何将 Nginx 文档根目录更改为新位置。这可以帮助您进行基本的 Web 服务器管理,例如有效管理单个服务器上的多个站点。它还允许您利用替代存储设备,例如网络块存储,这是根据需求变化扩展网站的重要一步。

如果您正在管理一个繁忙或不断发展的网站,您可能有兴趣学习如何使用 HTTP/2 设置 Nginx利用其高内容传输速度。您还可以在这个比较中了解更多有关提高生产体验的信息改进生产 Web 应用程序服务器设置的五种方法.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 16.04 上将 Nginx Web 根移动到新位置 的相关文章

随机推荐

  • 如何在 CentOS 7 上安装和配置 VNC

    在本教程中 我们将引导您完成在 CentOS 7 系统上安装和配置 VNC 服务器的步骤 我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器 虚拟网络计算 VNC 是一种图形桌面共享系统 允许您使用键盘和鼠标远程控制另一台计
  • 如何在 CentOS 7 上安装 Iptables

    从 CentOS 7 开始 防火墙D取代 iptables 成为默认的防火墙管理工具 FirewallD 是一个完整的防火墙解决方案 可以使用名为firewall cmd 的命令行实用程序进行控制 如果您更熟悉 Iptables 命令行语法
  • 如何用 Java 编写您的第一个程序

    作者选择了免费开源基金接受捐赠作为为捐款而写程序 介绍 Java是一种成熟且设计良好的编程语言 用途广泛 从课堂学习到运行任何规模的商业应用程序 它的独特优势之一是它是跨平台的 一旦创建了 Java 程序 就可以在许多操作系统上运行它 包括
  • 如何在 Ubuntu 12.10 上设置 ownCloud 5

    什么是Red Means 用户需要输入或自定义的行将位于red在本教程中 其余的大部分应该是可复制和粘贴的 关于ownCloud ownCloud 是一种开源数据存储解决方案 类似于 Dropbox 或 Google Drive 人们可以获
  • Android RecyclerView 示例 - 多种 ViewType

    到目前为止 我们已经在一个视图中显示了相同类型的视图回收视图 在本教程中 我们将在 RecyclerView 中实现异构布局 回收视图 具有异构布局的 RecyclerView 通常用于显示节标题和详细信息 两者都需要不同的布局 因此需要不
  • 如何在 Ubuntu 18.04 上安装 Node.js

    介绍 Node js是一个用于通用编程的JavaScript平台 允许用户快速构建网络应用程序 通过在前端和后端利用 JavaScript Node js 使开发更加一致和集成 在本指南中 您将了解在 Ubuntu 18 04 服务器上安装
  • 如何在 CentOS 7 上安装 WordPress

    介绍 WordPress 是一个使用 PHP 和 MySQL 的免费开源网站和博客工具 WordPress 是目前互联网上最流行的 CMS 内容管理系统 拥有超过 20 000 个插件来扩展其功能 这使得 WordPress 成为快速轻松地
  • Java二维码生成器-zxing示例

    今天我们将研究Java QR 码生成器程序 如果您精通技术和小工具 那么您一定知道二维码 如今 您随处都可以找到它 在博客 网站 甚至在一些公共场所 这在移动应用程序中非常流行 您可以使用 QR 码扫描仪应用程序扫描 QR 码 它会显示文本
  • Python 位运算符

    Python 按位运算符用于对整数执行按位计算 将整数转换为二进制格式 然后逐位执行运算 因此称为按位运算符 Python 按位运算符仅适用于整数 最终输出以十进制格式返回 Python 按位运算符也称为二元运算符 Python 位运算符
  • 如何在 Ubuntu 14.04 上使用 UFW 设置防火墙

    介绍 UFW 即简单防火墙 是一个接口iptables旨在简化配置防火墙的过程 尽管iptables虽然是一个可靠且灵活的工具 但对于初学者来说 学习如何使用它来正确配置防火墙可能会很困难 如果您希望开始保护您的网络 并且不确定使用哪个工具
  • 如何在 Ubuntu 14.04 上将 MySQL 或 MariaDB 与 Django 应用程序一起使用

    介绍 Django 是一个用于快速创建 Python 应用程序的灵活框架 默认情况下 Django 应用程序配置为将数据存储到轻量级 SQLite 数据库文件中 虽然这在某些负载下效果很好 但更传统的 DBMS 可以提高生产性能 在本指南中
  • Spring MVC @RequestMapping 注解示例,包含控制器、方法、标头、参数、@RequestParam、@PathVariable

    RequestMapping is one of the most widely used Spring MVC annotation org springframework web bind annotation RequestMappi
  • Java 中的 SQL 注入以及如何轻松预防

    什么是 SQL 注入 SQL注入是十大 Web 应用程序漏洞之一 简单来说 SQL注入是指通过用户输入的数据在查询中注入 插入SQL代码 它可以发生在任何使用关系数据库 如 Oracle MySQL PostgreSQL 和 SQL Ser
  • 如何在 Ubuntu 上使用 Stunnel 设置 SSL 隧道

    Status 已弃用 本文已弃用 不再维护 Reason Ubuntu 12 04 已于 2017 年 4 月 28 日终止生命周期 EOL 并且不再接收安全补丁或更新 请参阅 本文作为参考可能仍然有用 但可能不遵循最佳实践或适用于此版本或
  • 如何在 Ubuntu 14.04 LTS 上设置 Apache 虚拟主机

    介绍 Apache Web 服务器是在互联网上提供 Web 内容的最流行的方式 它占互联网上所有活跃网站的一半以上 并且非常强大和灵活 Apache 将其功能和组件分解为可以独立定制和配置的单独单元 描述单个站点或域的基本单位称为virtu
  • 如何使用多站点设置多个 WordPress 站点

    关于多个 WordPress 安装 2010 年 WordPress 发布了流行的内容管理平台 3 0 版本 在该版本中包含的众多改进中 WordPress 社区将 WordPress MU 合并到了主要的 WordPress 配置中 自更
  • Java 9 功能与示例

    Java 9 是一个主要版本 它为我们开发人员带来了很多功能 在本文中 我们将详细研究 Java 9 功能 Java 10 已发布 有关 Java 10 版本的完整概述 请访问Java 10 特性 Java 9 特性 Some of the
  • 如何在 CentOS 7 服务器上添加和删除用户

    介绍 当您第一次开始使用新的 Linux 服务器时 添加和删除用户通常是您需要做的第一件事 在本指南中 您将学习如何创建用户帐户 分配sudo权限 并删除 CentOS 7 服务器上的用户 先决条件 要完成本教程 您将需要 一台 CentO
  • 如何在 Ubuntu 22.04 上设置私有 Docker 注册表

    作者选择了免费开源基金接受捐赠作为为捐款而写程序 介绍 Docker 注册表是一个管理 Docker 容器镜像存储和交付的应用程序 注册表集中容器映像并减少开发人员的构建时间 Docker 镜像通过虚拟化保证相同的运行时环境 但构建镜像可能
  • 如何在 Ubuntu 16.04 上将 Nginx Web 根移动到新位置

    介绍 在 Ubuntu 上 默认情况下 Nginx Web 服务器将其文档存储在 var www html 它通常与操作系统的其余部分一起位于根文件系统上 但有时 将文档根移动到另一个位置会很有帮助 例如单独安装的文件系统 例如 如果您从同