麒麟服务器 V10 离线安装 Nginx 方案

概述

本文档详细说明了在无法访问外网的麒麟服务器 V10 系统上离线安装 Nginx 的完整方案,用于部署 DMS 系统(Django+Vue 前后端分离架构)。

系统环境

离线安装方案

1. 准备离线安装包

在有网络连接的相同系统版本计算机上执行以下步骤:

# 1. 添加 Nginx 官方仓库
wget -P /tmp http://nginx.org/packages/rhel/7/noarch/RPMS/nginx-release-rhel-7-0.el.noarch.rpm

# 2. 下载 Nginx 主程序包
yum install --downloadonly --downloaddir=/tmp nginx

# 或者直接下载特定版本的 Nginx RPM 包
wget -P /tmp http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.24.0-1.el7.ngx.x86_64.rpm

将以下文件复制到麒麟服务器: - nginx-release-rhel-7-0.el.noarch.rpm - nginx-1.24.0-1.el7.ngx.x86_64.rpm (或最新版本)

2. 安装 Nginx

# 1. 安装 Nginx 仓库配置
sudo rpm -ivh nginx-release-*.rpm

# 2. 安装 Nginx
sudo rpm -ivh nginx-*.rpm

# 3. 验证安装
nginx -v

3. 停止 HTTPD 服务

由于 HTTPD 和 Nginx 都会使用 80/443 端口,需要先停止 HTTPD 服务:

# 1. 查看 HTTPD 状态
sudo systemctl status httpd

# 2. 停止 HTTPD 服务
sudo systemctl stop httpd

# 3. 禁用 HTTPD 自动启动
sudo systemctl disable httpd

# 4. 检查端口占用情况
sudo netstat -tlnp | grep :80
sudo netstat -tlnp | grep :443

4. 启动 Nginx 服务

# 1. 启动 Nginx
sudo systemctl start nginx

# 2. 设置开机自启
sudo systemctl enable nginx

# 3. 检查 Nginx 状态
sudo systemctl status nginx

5. 验证安装

# 检查 Nginx 配置语法
sudo nginx -t

# 访问默认页面验证
curl http://localhost

# 检查进程
ps aux | grep nginx

配置 Nginx 用于 DMS 系统

1. 创建必要的目录

# 创建配置目录
# 检查 Nginx 配置和日志目录(安装 Nginx 时通常会自动创建)
# 一般情况下,/etc/nginx/conf.d 和 /var/log/nginx 在安装后已存在
ls -la /etc/nginx/conf.d
ls -la /var/log/nginx

# 如果上述目录不存在,才需要手动创建:
# sudo mkdir -p /etc/nginx/conf.d
# sudo mkdir -p /var/log/nginx

# 或者,如果您希望将所有 Nginx 相关文件集中管理,可以创建统一目录:
# sudo mkdir -p /usr/share/nginx/conf.d
# sudo mkdir -p /usr/share/nginx/logs

# 创建 DMS 前端文件目录,这里我们使用 /var/www/dms(与 httpd 一致的标准路径)
sudo mkdir -p /var/www/dms

# 或者您也可以选择使用 /usr/share/nginx/html(Nginx默认路径)
# sudo mkdir -p /usr/share/nginx/html

2. 部署 DMS 系统配置

将dms.conf 文件保存在 /etc/nginx/conf.d/ 目录下,并根据需要进行修改。不要修改默认的主配置文件nginx.conf 文件。

sudo nano /etc/nginx/conf.d/dms.conf

主要修改以下内容:

示例配置,详细配置请联系工程师:

# HTTP服务器块 - 重定向到HTTPS
server {
    listen       80;
    server_name  _;  # 支持所有域名/IP访问
    return 301 https://$server_name$request_uri;
}

# HTTPS服务器块
server {
    listen       443 ssl;
    server_name  _;  # 支持所有域名/IP访问

    # SSL证书配置
    ssl_certificate      /etc/ssl/certs/dms.crt;
    ssl_certificate_key  /etc/ssl/certs/dms.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    # 静态文件服务配置
    location / {
        root   /var/www/dms;  # DMS前端文件目录
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;  # 支持Vue history模式
    }

    # 静态资源处理 - 设置缓存和访问控制
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
        try_files $uri =404;
    }

    # API 请求代理到后端Django服务
    location ^~ /api/ {
        proxy_pass http://localhost:9090/;                  # 代理到后端Django服务地址(注意末尾斜杠)
        proxy_set_header Host $host;                        # 设置Host头
        proxy_set_header X-Real-IP $remote_addr;            # 设置真实IP头
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 设置转发IP链
        proxy_set_header X-Forwarded-Proto $scheme;         # 设置转发协议(HTTP/HTTPS)
    }
}

3. 配置防火墙

如果麒麟服务器启用了防火墙,需要开放 80 和 443 端口:

# 使用 firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

常用 Nginx 管理命令

# 启动 Nginx
sudo systemctl start nginx

# 停止 Nginx
sudo systemctl stop nginx

# 重启 Nginx
sudo systemctl restart nginx

# 重新加载配置
sudo nginx -s reload

# 测试配置文件
sudo nginx -t

# 设置开机自启
sudo systemctl enable nginx

# 取消开机自启
sudo systemctl disable nginx

故障排除

1. 端口占用问题

如果 Nginx 启动失败,检查端口占用:

sudo netstat -tlnp | grep :80
sudo netstat -tlnp | grep :443

2. 配置文件错误

使用以下命令检查配置文件语法:

sudo nginx -t

3. 服务状态检查

sudo systemctl status nginx

总结

  1. 将 Vue 前端构建文件部署到 /usr/share/nginx/html 目录
  2. 确保 Django 后端服务运行在 9090 端口
  3. 部署 SSL 证书到 /etc/ssl/certs/ 目录
  4. 部署 DMS 系统配置文件 dms.conf 到 /etc/nginx/conf.d/ 目录
  5. 重启 Nginx 服务使配置生效
sudo nginx -s reload

 

本方案提供了在麒麟服务器 V10 上离线安装 Nginx 的完整步骤,确保 DMS 系统能够正常部署并提供 HTTPS 服务。通过合理的配置,Nginx 将作为反向代理服务器,处理前端静态资源请求和后端 API 请求的转发。

环境监测

PM2.5/10、温湿度、有害气体等实时监测