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/

相关推荐
虚伪的空想家1 小时前
arm架构TDengine时序数据库及应用使用K8S部署
服务器·arm开发·架构·kubernetes·arm·时序数据库·tdengine
拾忆,想起1 小时前
Dubbo服务降级全攻略:构建韧性微服务系统的守护盾
java·前端·网络·微服务·架构·dubbo
邪恶喵喵1 小时前
nginx反向代理和负载均衡
运维·nginx·负载均衡
我爱学习_zwj1 小时前
Node.js模块管理:CommonJS vs ESModules
开发语言·前端·javascript
@YDWLCloud1 小时前
谷歌云 Compute Engine 实操手册:虚拟机配置与负载均衡全流程
java·运维·服务器·云计算·负载均衡·googlecloud
顾安r1 小时前
12.8 脚本网页 井字棋
前端·stm32·django·html
心本无晴.1 小时前
深入剖析Vue3中Axios的实战应用与最佳实践
前端·javascript·vue.js
冬男zdn1 小时前
优雅的React表单状态管理
前端·javascript·react.js
Cx330❀1 小时前
Git 基础操作通关指南:版本回退、撤销修改与文件删除深度解析
大数据·运维·服务器·git·算法·搜索引擎·面试