openEuler软件生态体验:快速部署Nginx Web服务器

背景和适用场景

Nginx作为高性能Web服务器和反向代理服务器,在互联网架构中扮演着核心角色。无论是搭建静态资源服务、API网关,还是作为负载均衡器,Nginx都是首选方案之一。

这次实战部署的环境是openEuler 22.03 LTS系统,主要验证openEuler在软件生态方面的完善程度。通过这次部署可以看到,从软件安装、依赖解决到服务配置,整个流程是否顺畅,能否满足实际生产需求。

环境准备

服务器使用的是华为云ECS实例,系统版本确认:

plain 复制代码
cat /etc/os-release

从输出可以看到系统是openEuler 22.03 LTS版本,这是openEuler的长期支持版本,适合生产环境使用。

Nginx安装

openEuler使用dnf作为包管理器,安装Nginx只需要一条命令:

plain 复制代码
sudo dnf install -y nginx

从安装输出可以看到,dnf自动处理了Nginx的所有依赖关系。安装的软件包包括:

核心组件:nginx-1:1.21.5主程序、nginx-filesystem文件系统布局、nginx-all-modules模块集合

功能模块:nginx-mod-http-image-filter图片处理模块、nginx-mod-http-perl Perl支持、nginx-mod-http-xslt-filter XSLT转换、nginx-mod-mail邮件代理、nginx-mod-stream TCP/UDP代理

依赖库:gd和libwebp图片处理库、libxslt XML转换库、gperftools-libs性能分析工具

整个安装过程中,14个软件包自动完成了下载、依赖解决和配置,没有任何手动干预。验证安装版本:

plain 复制代码
nginx -v

输出显示版本为nginx/1.21.5,这是一个稳定且功能完善的版本。

启动和验证服务

使用systemd启动Nginx服务:

plain 复制代码
sudo systemctl start nginx
sudo systemctl status nginx

从服务状态输出可以看到几个关键信息。服务状态显示为active (running),说明Nginx已经正常运行。进程方面,系统启动了3个nginx进程:PID 102315是master主进程负责管理,PID 102316和102317是两个worker工作进程负责处理请求。内存占用只有10.0M,资源消耗非常低。

配置文件验证部分显示nginx.conf语法正确且测试通过,说明openEuler提供的默认配置是可用的。

检查Nginx监听的端口:

plain 复制代码
sudo netstat -tulnp | grep nginx

从输出可以看到Nginx监听在0.0.0.0:80端口,同时支持IPv4和IPv6访问。使用curl命令本地访问:

plain 复制代码
curl http://localhost

返回的HTML页面标题是"Test Page for the Nginx HTTP Server on openEuler",这说明openEuler官方对Nginx做了适配,提供了专门的欢迎页面。

Nginx配置文件结构

查看Nginx的配置文件结构:

plain 复制代码
tree /etc/nginx/

从目录结构可以看到,openEuler上Nginx的配置采用了模块化设计。主配置文件nginx.conf负责全局设置,conf.d目录用于存放自定义站点配置,default.d目录存放默认配置。fastcgi、scgi、uwsgi三个参数配置文件对应不同的应用服务器协议。mime.types文件定义了文件类型映射关系。

这种结构的好处在于,每个站点可以独立配置一个文件放在conf.d目录下,主配置文件保持简洁,多站点管理互不干扰。

创建自定义站点

建立一个自定义站点来演示实际应用场景。创建站点目录并编写测试页面:

plain 复制代码
sudo mkdir -p /var/www/mysite
cd /var/www/mysite
sudo tee index.html > /dev/null << 'EOF'
<!DOCTYPE html>
<html>
<head>
    <title>openEuler + Nginx 测试页面</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 800px;
            margin: 50px auto;
            padding: 20px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
        }
        .container {
            background: rgba(255,255,255,0.1);
            padding: 30px;
            border-radius: 10px;
            backdrop-filter: blur(10px);
        }
        h1 { font-size: 2.5em; margin-bottom: 20px; }
        .info { font-size: 1.2em; line-height: 1.8; }
        .success { color: #4ade80; font-weight: bold; }
    </style>
</head>
<body>
    <div class="container">
        <h1>🎉 Nginx 部署成功!</h1>
        <div class="info">
            <p><span class="success">✓</span> 操作系统:openEuler</p>
            <p><span class="success">✓</span> Web服务器:Nginx</p>
            <p><span class="success">✓</span> 状态:运行正常</p>
        </div>
    </div>
</body>
</html>
EOF

从截图可以看到HTML文件创建完成,页面采用了渐变背景和毛玻璃效果的现代化设计。设置文件权限:

plain 复制代码
sudo chmod 755 /var/www/mysite
sudo chmod 644 /var/www/mysite/index.html

接下来为这个站点创建Nginx配置文件:

plain 复制代码
sudo tee /etc/nginx/conf.d/mysite.conf > /dev/null << 'EOF'
server {
    listen 8080;
    server_name localhost;
    
    root /var/www/mysite;
    index index.html;
    
    location / {
        try_files $uri $uri/ =404;
    }
    
    access_log /var/log/nginx/mysite_access.log;
    error_log /var/log/nginx/mysite_error.log;
}
EOF

这个配置文件让Nginx在8080端口监听,站点根目录指向/var/www/mysite,同时配置了独立的访问日志和错误日志。

验证配置文件语法并重载服务:

plain 复制代码
sudo nginx -t
sudo systemctl reload nginx

从输出可以看到配置文件语法检查通过,测试成功。使用ss命令查看端口监听情况,可以看到Nginx现在同时监听80和8080两个端口,原有的默认站点和新建的自定义站点都在运行。

访问测试

访问新建的自定义站点:

plain 复制代码
curl http://localhost:8080

从curl输出可以看到完整的HTML代码正常返回,包括渐变背景样式和页面内容。如果通过浏览器访问服务器IP的8080端口,会看到一个带有紫蓝色渐变背景、半透明容器的现代化页面,显示Nginx部署成功的状态信息。

实战总结

整个部署过程用时不到10分钟,从系统环境确认、软件安装、服务启动到自定义站点配置,每一步都很顺畅。openEuler的软件仓库中Nginx版本是1.21.5稳定版,包含了所有常用模块,dnf包管理器自动解决了14个依赖包的安装,完全不需要手动编译或配置环境变量。配置文件结构采用了主配置加conf.d目录的模块化设计,方便管理多个站点。systemd集成让服务管理变得简单,通过systemctl就能完成启动、停止、重载等操作。从这次部署可以看出,openEuler在软件生态方面的完善程度已经达到了生产环境的要求,对于Web服务器这类基础设施软件,安装即可用,配置即生效,运维成本很低。

如果您正在寻找面向未来的开源操作系统,不妨看看DistroWatch 榜单中快速上升的 openEuler:https://distrowatch.com/table-mobile.php?distribution=openeuler,一个由开放原子开源基金会孵化、支持"超节点"场景的Linux 发行版。

openEuler官网:https://www.openeuler.openatom.cn/zh/

相关推荐
人工智能训练6 小时前
OpenEnler等Linux系统中安装git工具的方法
linux·运维·服务器·git·vscode·python·ubuntu
郭涤生6 小时前
第十章_信号_《UNIX环境高级编程(第三版)》_笔记
服务器·笔记·unix
0和1的舞者6 小时前
Spring AOP详解(一)
java·开发语言·前端·spring·aop·面向切面
web小白成长日记6 小时前
在Vue样式中使用JavaScript 变量(CSS 变量注入)
前端·javascript·css·vue.js
QT 小鲜肉6 小时前
【Linux命令大全】001.文件管理之which命令(实操篇)
linux·运维·服务器·前端·chrome·笔记
C_心欲无痕6 小时前
react - useImperativeHandle让子组件“暴露方法”给父组件调用
前端·javascript·react.js
额呃呃7 小时前
select详细分析
服务器
网创联盟,知识导航7 小时前
沐雨云香港大宽带云服务器 · 配置全览
服务器·阿里云·腾讯云
fantasy5_58 小时前
Linux 动态进度条实战:从零掌握开发工具与核心原理
linux·运维·服务器
不瘦80斤不改名8 小时前
Python 日志(logging)全解析
服务器·python·php