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
csslocation / { allow all; }
}
*拓展知识:上述代码为Nginx 配置文件中 server
块的示例。让我们逐行解释每个子项的含义:
-
listen 80;
: 指定服务器监听的端口号为80,表示该服务器将使用HTTP协议进行通信。 -
server\\_name 172.17.0.33;
: 指定服务器的域名或IP地址。在这个示例中,服务器的名称是IP地址 172.17.0.33。 -
root /usr/local/share/myweb;
: 指定服务器上的根目录,用于存放网站文件。文件和目录的相对路径将从此根目录开始解析。 -
location / {...}
: 定义请求的处理方式。在这个示例中,/
表示根URL路径,即所有请求都会被该location
块处理。 -
allow all;
: 允许所有客户端访问该服务器上的资源。这意味着没有访问限制,任何人都可以访问服务器提供的网站。
- 查看整个主配置文件我们并没有在
http
部分找到server
块,但是我们在http
部分内可以看到一行有用的信息,配置文件的其他目录
*拓展知识:现在我们已经了解到Nginx配置文件在不同目录下有三个常见位置,它们的作用和区别如下:
-
/etc/nginx/nginx.conf
: 这是 Nginx 的主配置文件,包含全局配置指令和http
块。在这个文件中,你可以配置全局设置,如工作进程数、日志路径、默认的服务器块等。这个文件通常只有一个,用于指定整个 Nginx 服务的行为。 -
/etc/nginx/conf.d/\\*.conf
: 在这个目录下,可以放置一些额外配置文件,以.conf
结尾。这些文件中可以包含其他http
或server
块的配置。这个目录的配置文件通常用于组织和管理 Nginx 的不同模块配置,方便维护和扩展。 -
/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服务无法正常启动时,几个常用的排错方法:
-
检查配置文件:请确保Nginx配置文件内容正确无误。可以使用
nginx -t
命令检查配置文件是否有语法错误。 -
查看日志文件:尝试查看 Nginx 的错误日志文件,通常位于
/var/log/nginx/error.log
。其中可能包含有关为何无法启动 Nginx 的详细错误消息。cat /var/log/nginx/error.log
-
查看端口占用情况:如果另一个进程已经在使用 Nginx 默认的监听端口(例如80或443),那么启动 Nginx 将会失败。你可以使用
netstat
或ss
命令来检查端口占用情况。netstat -tuln | grep -E '80|443' ss -tulpn | grep :80|443
-
以 root 用户权限启动:确认你以 root 用户身份运行了
service nginx start
命令。 -
解决文件权限问题:确保 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
我们通过访问可以看到静态页面的内容
至此结束
有兴趣的小伙伴快去云端源想云实验实操吧