背景和适用场景
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/