在 openEuler Linux 上安装 Nginx

举报
Chocola 发表于 2026/10/13 19:31:08 2026/10/13
【摘要】 Nginx 是一款轻量、高性能的 Web 服务器和反向代理服务器,适合在 openEuler 上部署静态站点、反向代理、博客程序或 API 网关。openEuler 默认使用 dnf 作为包管理器,Nginx 通常可以直接从官方仓库安装。 1. 更新软件源安装前先刷新软件源缓存,避免依赖解析失败。sudo dnf makecache如果系统很久没有更新,也可以先执行:sudo dnf upd...

Nginx 是一款轻量、高性能的 Web 服务器和反向代理服务器,适合在 openEuler 上部署静态站点、反向代理、博客程序或 API 网关。

openEuler 默认使用 dnf 作为包管理器,Nginx 通常可以直接从官方仓库安装。


1. 更新软件源

安装前先刷新软件源缓存,避免依赖解析失败。

sudo dnf makecache

如果系统很久没有更新,也可以先执行:

sudo dnf update -y

2. 安装 Nginx

直接使用 dnf 安装即可:

sudo dnf install -y nginx

安装完成后查看版本:

nginx -v

如果提示找不到软件包,可以确认当前软件源是否正常,或启用 EPOL 源:

sudo dnf config-manager --set-enabled epol
sudo dnf install -y nginx

3. 启动并设置开机自启

安装完成后,启动 Nginx 并设置开机自启:

sudo systemctl enable --now nginx

查看运行状态:

systemctl status nginx

如果输出中包含 active (running),说明 Nginx 已经正常运行。

常用管理命令:

命令 作用
sudo systemctl start nginx 启动 Nginx
sudo systemctl stop nginx 停止 Nginx
sudo systemctl restart nginx 完全重启 Nginx
sudo systemctl reload nginx 重新加载配置,不中断请求
sudo systemctl enable nginx 设置开机自启
sudo systemctl disable nginx 取消开机自启

日常修改配置后,推荐使用 reload 而不是 restart。


4. 配置防火墙

如果 openEuler 启用了 firewalld,需要放行 HTTP 和 HTTPS 端口。

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

查看当前放行规则:

sudo firewall-cmd --list-all

如果是云服务器,还需要在安全组中放行 80 和 443 端口。


5. 验证访问

在服务器本地执行:

curl http://localhost

或在浏览器中访问:

http://服务器IP地址

如果看到 Nginx 默认欢迎页面,说明安装成功。


6. 主要配置文件和目录

openEuler 通过 dnf 安装 Nginx 后,常用路径如下:

路径 说明
/etc/nginx/nginx.conf 主配置文件
/etc/nginx/conf.d/ 子配置目录
/usr/share/nginx/html/ 默认网站根目录
/var/log/nginx/ 日志目录
/run/nginx.pid PID 文件

修改任何配置文件后,建议先检查语法:

sudo nginx -t

如果提示 syntax is ok,再重新加载:

sudo systemctl reload nginx

7. 添加一个简单站点配置

可以在 conf.d 目录下创建独立配置文件,例如:

sudo vim /etc/nginx/conf.d/blog.conf

写入如下内容:

server {
    listen 80;
    server_name _;

    root /usr/share/nginx/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

保存后检查配置:

sudo nginx -t
sudo systemctl reload nginx

如果后续部署个人博客或静态站点,只需把网站文件放到对应目录,并修改 root 路径即可。


8. 可选:源码编译安装

如果官方仓库中的 Nginx 版本不满足需求,可以从源码编译安装。

安装编译依赖:

sudo dnf install -y gcc make pcre pcre-devel zlib zlib-devel openssl openssl-devel

下载源码并编译:

wget https://nginx.org/download/nginx-1.26.3.tar.gz
tar -zxvf nginx-1.26.3.tar.gz
cd nginx-1.26.3

./configure \
  --prefix=/usr/local/nginx \
  --with-http_ssl_module \
  --with-http_v2_module \
  --with-http_gzip_static_module \
  --with-http_stub_status_module

make -j$(nproc)
sudo make install

源码编译安装后,Nginx 默认位于 /usr/local/nginx,不会自动注册为 systemd 服务,需要手动编写 nginx.service 文件。

对于日常运维,仍然更推荐直接使用 dnf 安装,便于后续升级和维护。


常见问题

问题 处理方式
nginx: command not found 执行 sudo dnf install -y nginx
无法访问默认页面 检查 systemctl status nginx 和防火墙
修改配置后不生效 使用 sudo nginx -t 检查语法,再 sudo systemctl reload nginx
端口被占用 使用 `ss -lntp
找不到 nginx 包 刷新缓存 sudo dnf makecache,或启用 EPOL 源

小结

在 openEuler 上安装 Nginx,推荐直接使用:

sudo dnf makecache
sudo dnf install -y nginx
sudo systemctl enable --now nginx
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

安装完成后,通过浏览器访问服务器 IP,确认出现 Nginx 欢迎页面即可。后续如果要部署博客、静态站点或反向代理,建议在 /etc/nginx/conf.d/ 目录下单独创建站点配置文件,保持主配置文件简洁。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。