【实战教程】Nginx静态Web服务器部署,轻松掌握!

Nginx 是一个高性能、开源的 Web 服务器软件,它可以作为反向代理服务器、负载均衡器和 HTTP 缓存等。在这里,我们将介绍如何在 Nginx 上部署静态 Web 服务器。

部署静态 Web 服务器的流程包括以下步骤:

  • 安装 Nginx;
  • 配置网站;
  • 创建静态网页;
  • 重新加载 Nginx 配置;
  • 测试网站;

在执行每个步骤之前,请确保你具有适当的权限。这些步骤的详细说明可以在下一个问题中找到。

如果你需要更复杂的服务器配置,例如使用 SSL/TLS 加密或部署动态 Web 应用程序,则需要进行更多的配置和设置。但是,部署静态 Web 服务器是一个很好的开始。

部署服务-Nginx静态Web服务器部署实验

下面实验是在**云端源想云实验室上进行, 点击进行实验**

实验流程和具体步骤截图如下:

拖建环境

从左侧设备列表左键按住拖建一台服务器和一台客户端

环境系统为 Ubuntu Linux 系统

服务器上搭建Nginx服务器

1.启动服务器并进入终端操作

右键点击服务器-选择启动服务

启动后,右键点击服务器-选择打开终端,进入服务器的控制终端

终端界面,可点击全屏展示

2.安装Nginx

终端内(可全屏操作)

更新本地软件包列表

sql 复制代码
apt update

使用命令安装Nginx

复制代码
apt install nginx

出现需确认才可继续执行时 输入 Y 继续执行

kotlin 复制代码
Need to get 4032 kB of archives.
After this operation, 12.7 MB of additional disk space will be used.
Do you want to continue? [Y/n]  Y

使用查看命令查看Nginx是否安装成功

复制代码
nginx -v

出现Nginx的版本 说明安装成功

yaml 复制代码
nginx version: nginx/1.18.0 (Ubuntu)

点击尝试实验

3.配置Nginx

默认情况下,Nginx 的主配置文件位于 /etc/nginx/nginx.conf。我们需要查看并配置服务器

找到 nginx.conf 文件位置,进入目录 /etc/nginx/,并使用 ll 命令查看目录下文件

bash 复制代码
cd /etc/nginx/

ll

找到配置文件 下面来查看配置文件

  • 查看并编辑配置文件

    vim nginx.conf

  • 我们需要做的配置内容为下面代码块内容,需要确保在 http 部分包含以下内容(如果不存在,可以手动添加)

    server { listen 80; server_name 172.17.0.33; root /usr/local/share/myweb

    css 复制代码
    location / {
        allow all;
    }

    }

*拓展知识:上述代码为Nginx 配置文件中 server 块的示例。让我们逐行解释每个子项的含义:

  1. listen 80;: 指定服务器监听的端口号为80,表示该服务器将使用HTTP协议进行通信。

  2. server\\_name 172.17.0.33;: 指定服务器的域名或IP地址。在这个示例中,服务器的名称是IP地址 172.17.0.33。

  3. root /usr/local/share/myweb;: 指定服务器上的根目录,用于存放网站文件。文件和目录的相对路径将从此根目录开始解析。

  4. location / {...}: 定义请求的处理方式。在这个示例中,/ 表示根URL路径,即所有请求都会被该 location 块处理。

  5. allow all;: 允许所有客户端访问该服务器上的资源。这意味着没有访问限制,任何人都可以访问服务器提供的网站。

  • 查看整个主配置文件我们并没有在 http 部分找到 server 块,但是我们在http部分内可以看到一行有用的信息,配置文件的其他目录

*拓展知识:现在我们已经了解到Nginx配置文件在不同目录下有三个常见位置,它们的作用和区别如下:

  1. /etc/nginx/nginx.conf: 这是 Nginx 的主配置文件,包含全局配置指令和 http 块。在这个文件中,你可以配置全局设置,如工作进程数、日志路径、默认的服务器块等。这个文件通常只有一个,用于指定整个 Nginx 服务的行为。

  2. /etc/nginx/conf.d/\\*.conf: 在这个目录下,可以放置一些额外配置文件,以 .conf 结尾。这些文件中可以包含其他 httpserver 块的配置。这个目录的配置文件通常用于组织和管理 Nginx 的不同模块配置,方便维护和扩展。

  3. /etc/nginx/sites-enabled/\\*: 这个目录通常包含多个针对不同网站或应用程序的配置文件,以 .conf 结尾。这些配置文件通过在 /etc/nginx/sites-available/ 目录中创建符号链接进行启用。每个配置文件代表一个独立的虚拟主机或应用的 Nginx 配置。通过将文件符号链接到 sites-enabled 目录,可以启用或禁用特定的站点配置,从而选择性地加载配置。通常情况下,这个目录的配置文件用于定义具体的网站配置,包括监听的端口、域名、SSL 证书等。

简而言之

r 复制代码
`nginx.conf` 是 Nginx 的主配置文件,用于全局设置;

`conf.d/\*.conf` 目录是用于存放额外的配置文件,可以包含其他 `http` 或 `server` 块的配置;

`sites-enabled/\*` 目录是用于存放针对不同网站或应用程序的配置文件,通过启用或禁用符号链接来选择性地加载配置。

这种文件的分组和分割可以提高配置管理的可维护性和灵活性。

  • 根据上述介绍,我们选择将自己的配置文件放在 /etc/nginx/conf.d/ 路径下

取消 nginx.conf 文件的编辑,进入 /etc/nginx/conf.d/ 路径目录,并创建配置文件 myweb.conf

bash 复制代码
cd /etc/nginx/conf.d/

touch myweb.conf
  • 查看并编辑配置文件 myweb.conf

    vim myweb.conf

  • 正确输入上述 server 块内内容,保存并关闭

  • 可以使用 cat 命令查看内容是否已正确保存

到此,还需要获取服务器的IP地址 和 创建根目录

  • 获取服务器IP地址

    ip addr show eth0

该命令会输出容器内默认网卡 eth0 网卡的信息。 我们在inet后找到IP地址。

找到IP地址后,修改 myweb.conf 文件内的 server\_name 对应地址,可以使用 cat 命令查看是否正确修改

  • 创建根目录

进入 /usr/local/share/ 目录,并在其下用 mkdir 创建我们的根目录,可使用 ll 命令查看是否正确创建

bash 复制代码
cd /usr/local/share/

mkdir myweb
  • 在根目录下,创建一个静态web文件 hello.html

    cd /usr/local/share/myweb/

    touch hello.html

  • 编辑文件

    vim hello.html

  • 文件内容为:

    Hello, World!

保存并退出,可使用 cat hello.html 查看内容是否正确保存

  • 至此,我们的 server 块内容全部获取并做好了配置文件,下面我们来启动Nginx服务并校验配置是否正确生效

4.启动Nginx

  • 启动Nginx服务后再查看Nginx服务状态是否正常启动并正在运行

    service nginx start

    service nginx status

我们发现Nginx服务并没有正常启动,开始查找原因

  • 优先查看是否配置文件有错,可以使用 nginx -t 命令检查配置文件是否有语法错误。

可以看到是在配置文件/etc/nginx/conf.d/myweb.conf的root指令末尾没有以 ";" 结尾,找到原因后修改配置文件。

bash 复制代码
vim /etc/nginx/conf.d/myweb.conf

修改后保存退出,再次启动Nginx服务并查看其状态

看到,Nginx服务已经正常启动了

*拓展知识:Nginx无法正常启动报错排查:

  • 这里我们可以再了解下当Nginx服务无法正常启动时,几个常用的排错方法:
  1. 检查配置文件:请确保Nginx配置文件内容正确无误。可以使用 nginx -t 命令检查配置文件是否有语法错误。

  2. 查看日志文件:尝试查看 Nginx 的错误日志文件,通常位于 /var/log/nginx/error.log。其中可能包含有关为何无法启动 Nginx 的详细错误消息。

    cat /var/log/nginx/error.log

  1. 查看端口占用情况:如果另一个进程已经在使用 Nginx 默认的监听端口(例如80或443),那么启动 Nginx 将会失败。你可以使用 netstatss 命令来检查端口占用情况。

    netstat -tuln | grep -E '80|443' ss -tulpn | grep :80|443

  1. 以 root 用户权限启动:确认你以 root 用户身份运行了 service nginx start 命令。

  2. 解决文件权限问题:确保 Nginx 进程对配置文件和相关目录具有适当的访问权限。可以使用以下命令修复权限问题:

    chown -R www-data:www-data /etc/nginx

这将把配置文件和目录的所有权设置为 Nginx 进程所需的用户和组(通常是 www-data)。

至此 Nginx服务器及其配置已全部完成,下面我们来测试其访问是否正常

客户端上访问服务器上Nginx静态Web服务器内页面

1.启动客户端服务并构建客户端到服务器的访问权限

  • 右键点击客户端-启动服务,启动客户端服务器

  • 连线:连接一条客户端指向服务器的连线,以创建从客户端到服务器的访问权限

2.客户端通过IP访问服务器上静态文件

  • 客户端进入终端

右键点击客户端-打开操作终端

  • 使用命令 curl 命令访问服务器上的静态页面

先安装 curl 命令

sql 复制代码
apt update

apt install curl

访问静态页面

arduino 复制代码
curl http://172.17.0.65/hello.html

我们通过访问可以看到静态页面的内容

至此结束

有兴趣的小伙伴快去云端源想云实验实操吧

相关推荐
柏油1 小时前
可视化 MySQL binlog 监听方案
数据库·后端·mysql
小米里的大麦1 小时前
025 理解文件系统
linux
舒一笑1 小时前
Started TttttApplication in 0.257 seconds (没有 Web 依赖导致 JVM 正常退出)
jvm·spring boot·后端
M1A12 小时前
Java Enum 类:优雅的常量定义与管理方式(深度解析)
后端
打不了嗝 ᥬ᭄2 小时前
Linux 信号
linux·开发语言·c++·算法
禁默2 小时前
进程替换:从 “改头换面” 到程序加载的底层逻辑
linux·运维·服务器
AAA修煤气灶刘哥2 小时前
别再懵了!Spring、Spring Boot、Spring MVC 的区别,一篇讲透
后端·面试
gameatp2 小时前
从 Windows 到 Linux 服务器的全自动部署教程(免密登录 + 压缩 + 上传 + 启动)
linux·服务器·windows
穷人小水滴2 小时前
在 windows 运行 flatpak 应用 (WSL)
linux·windows·ubuntu
柏油2 小时前
MySQL 字符集 utf8 与 utf8mb4
数据库·后端·mysql