麒麟系统安装 Nginx 作为非 Web 程序的完整指南

在这里插入图片描述

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用,熟悉DICOM医学影像及DICOM协议,业余时间自学JavaScript,Vue,qt,python等,具备多种混合语言开发能力。撰写博客分享知识,致力于帮助编程爱好者共同进步。欢迎关注、交流及合作,提供技术支持与解决方案。
技术合作请加本人wx(注明来自csdn):xt20160813

在这里插入图片描述

麒麟系统安装 Nginx 作为非 Web 程序的完整指南

一、背景与优势

麒麟操作系统是国产 Linux 发行版,支持龙芯、飞腾等国产硬件,广泛用于政府、企业和教育领域。Nginx 是一个高性能服务器,不仅限于 Web 服务,还可作为反向代理、负载均衡器、TCP/UDP 代理或邮件代理等非 Web 程序。非 Web 场景包括:

  • 反向代理:为 API、数据库等提供统一入口。
  • 负载均衡:分发流量到多个节点。
  • TCP/UDP 代理:支持 MySQL、RabbitMQ 等协议。
  • 邮件代理:处理 IMAP/POP3/SMTP。

优势

  • 高并发处理能力,单实例支持数万连接。
  • 模块化配置,适配多种协议。
  • 在麒麟系统上运行稳定,兼容国产硬件。
  • 通过 systemd 集成,便于管理。

麒麟操作系统(Kylin OS)通常基于 Debian/Ubuntu 或 CentOS/RHEL 体系,因此包管理器和部分操作命令会因系统基础而异。本指南将明确区分 Debian/Ubuntu 系麒麟系统CentOS/RHEL 系麒麟系统 的命令差异,详细介绍在麒麟系统上安装 Nginx 并配置其作为非 Web 程序(如 TCP 代理或负载均衡器)的完整流程。内容涵盖安装、配置、调试、优化及常见问题解决方案,结合历史对话中的上下文(如服务管理和 Fitten Code 集成),并针对两种系统类型提供准确的命令。
本文以 TCP 代理 MySQLHTTP 负载均衡 为例,展示配置流程,并区分 Debian/Ubuntu 和 CentOS/RHEL 系命令。


二、准备工作

开始前,请确保:

  1. 系统环境:麒麟操作系统(V10 或以上,桌面版/服务器版)。
    lsb_release -a
    
    确认版本(如 Kylin V10 SP1)及体系(Debian/Ubuntu 或 CentOS/RHEL)。
  2. 权限:使用 sudo 或 root 用户。
  3. 网络:系统可访问软件源。
  4. 后端服务:准备后端服务,如 MySQL(IP: 192.168.1.100, 端口: 3306)。
  5. 确认包管理器
    • Debian/Ubuntu 系:使用 apt
    • CentOS/RHEL 系:使用 yumdnf

三、安装 Nginx

Nginx在麒麟系统的离线安装可参考这位大佬的文章,写的很详细:https://blog.csdn.net/qq_40850482/article/details/146223871

麒麟系统支持包管理器或源码安装 Nginx。以下区分两种体系,提供详细步骤。

3.1 使用包管理器安装(推荐)
Debian/Ubuntu 系麒麟系统
  1. 更新软件源

    sudo apt update
    

    若默认源较慢,可配置国内镜像(如清华源):

    sudo vi /etc/apt/sources.list
    # 示例:添加清华源
    deb https://mirrors.tuna.tsinghua.edu.cn/kylin/kylin main restricted universe multiverse
    sudo apt update
    
  2. 安装 Nginx

    sudo apt install nginx -y
    

    自动安装依赖(如 libpcre3zlib1g)。

  3. 验证安装

    nginx -v
    

    示例输出:

    nginx version: nginx/1.18.0
    
  4. 检查服务

    sudo systemctl status nginx
    

    确认状态为 active (running)

CentOS/RHEL 系麒麟系统
  1. 更新软件源

    sudo yum update
    

    或使用 dnf(较新版本):

    sudo dnf update
    

    配置国内镜像(如阿里源):

    sudo vi /etc/yum.repos.d/kylin.repo
    # 示例:添加阿里源
    [kylin]
    name=Kylin
    baseurl=https://mirrors.aliyun.com/kylin/$releasever/$basearch/
    enabled=1
    gpgcheck=0
    sudo yum update
    
  2. 安装 Nginx

    sudo yum install nginx -y
    

    或:

    sudo dnf install nginx -y
    
  3. 验证安装

    nginx -v
    
  4. 检查服务

    sudo systemctl status nginx
    
3.2 源码编译安装(可选)

若需要特定模块(如 stream 模块),可源码安装,适用于两种体系。

  1. 安装依赖

    • Debian/Ubuntu 系
      sudo apt install build-essential libpcre3-dev zlib1g-dev libssl-dev -y
      
    • CentOS/RHEL 系
      sudo yum install gcc make pcre-devel zlib-devel openssl-devel -y
      
      或:
      sudo dnf install gcc make pcre-devel zlib-devel openssl-devel -y
      
  2. 下载源码

    wget http://nginx.org/download/nginx-1.24.0.tar.gz
    tar -zxvf nginx-1.24.0.tar.gz
    cd nginx-1.24.0
    
  3. 配置编译
    启用 stream 模块:

    ./configure --prefix=/usr/local/nginx \
                --with-stream \
                --with-http_ssl_module \
                --with-pcre
    
  4. 编译安装

    make && sudo make install
    
  5. 创建 systemd 服务
    编辑 /etc/systemd/system/nginx.service

    [Unit]
    Description=Nginx - High Performance Server
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s quit
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    
  6. 启用服务

    sudo systemctl daemon-reload
    sudo systemctl start nginx
    sudo systemctl enable nginx
    

注意:源码安装需手动维护,生产环境推荐包管理器。


四、配置 Nginx 作为非 Web 程序

以下以 TCP 代理 MySQLHTTP 负载均衡 为例,配置步骤在两种体系下通用。

4.1 TCP 代理(MySQL 数据库)

Nginx 的 stream 模块支持 TCP/UDP 代理。

  1. 确认 stream 模块

    nginx -V 2>&1 | grep stream
    

    应包含 --with-stream。若无,需源码编译。

  2. 编辑配置文件

    • 默认路径:
      • Debian/Ubuntu 系:/etc/nginx/nginx.conf
      • CentOS/RHEL 系:/etc/nginx/nginx.conf
    sudo vi /etc/nginx/nginx.conf
    

    添加:

    stream {
        upstream mysql_backend {
            server 192.168.1.100:3306;
        }
    
        server {
            listen 3306;
            proxy_pass mysql_backend;
            proxy_timeout 10s;
            proxy_connect_timeout 5s;
        }
    }
    

    说明

    • upstream:定义后端。
    • server:监听并转发。
    • proxy_timeout:超时设置。
  3. 验证配置

    sudo nginx -t
    
  4. 重启 Nginx

    sudo systemctl restart nginx
    
  5. 测试代理

    mysql -h 127.0.0.1 -P 3306 -u root -p
    
4.2 HTTP 负载均衡(API 服务)
  1. 编辑配置文件
    http 块添加:

    sudo vi /etc/nginx/nginx.conf
    
    http {
        upstream api_backend {
            server 192.168.1.101:8080;
            server 192.168.1.102:8080;
            least_conn;
        }
    
        server {
            listen 80;
            server_name api.example.com;
    
            location / {
                proxy_pass http://api_backend;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
        }
    }
    
  2. 验证并重启

    sudo nginx -t
    sudo systemctl restart nginx
    
  3. 测试

    curl http://api.example.com
    
4.3 配置管理建议
  • 模块化
    • Debian/Ubuntu 系:存放于 /etc/nginx/conf.d//etc/nginx/sites-available/
    • CentOS/RHEL 系:存放于 /etc/nginx/conf.d/
    sudo vi /etc/nginx/conf.d/mysql_proxy.conf
    
  • 备份
    sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
    

五、常用操作命令

命令在两种体系下通用:

  • 启动
    sudo systemctl start nginx
    
  • 停止
    sudo systemctl stop nginx
    
  • 重启
    sudo systemctl restart nginx
    
  • 平滑重载
    sudo nginx -s reload
    
  • 状态
    sudo systemctl status nginx
    
  • 日志
    • 访问日志:/var/log/nginx/access.log
    • 错误日志:/var/log/nginx/error.log
    tail -f /var/log/nginx/error.log
    
  • 开机自启
    sudo systemctl enable nginx
    

六、调试与监控
6.1 日志分析
  • 错误日志:
    tail -n 50 /var/log/nginx/error.log
    
  • 访问日志:
    tail -n 50 /var/log/nginx/access.log
    
6.2 性能监控
  • 安装工具:
    • Debian/Ubuntu 系:
      sudo apt install htop -y
      
    • CentOS/RHEL 系:
      sudo yum install htop -y
      
    htop
    
  • 检查连接:
    ss -tuln | grep :3306
    
6.3 结合 Fitten Code

参考历史对话,使用 Fitten Code 生成配置:

# 输入:@Fitten 生成 Nginx TCP 代理配置
stream {
    upstream backend {
        server 192.168.1.100:3306;
    }
    server {
        listen 3306;
        proxy_pass backend;
    }
}

七、常见问题与解决方案
问题解决方案
启动失败检查语法:sudo nginx -t;查看日志:tail /var/log/nginx/error.log;确认端口:netstat -tuln | grep 3306
无 stream 模块重新编译启用 --with-stream
后端超时测试后端:telnet 192.168.1.100 3306;增加 proxy_timeout
日志过大配置轮转:
- Debian/Ubuntu 系:sudo vi /etc/logrotate.d/nginx
- CentOS/RHEL 系:sudo vi /etc/logrotate.d/nginx
/var/log/nginx/*.log { daily; rotate 7; }
权限问题确保 www-data(Debian/Ubuntu)或 nginx(CentOS/RHEL)用户有权限:
sudo chown www-data:www-data /var/log/nginx(Debian/Ubuntu)
sudo chown nginx:nginx /var/log/nginx(CentOS/RHEL)。

八、优化与扩展
8.1 性能优化
  • 进程数:
    worker_processes auto;
    
  • 连接数:
    events {
        worker_connections 1024;
    }
    
8.2 安全性
  • 防火墙:
    • Debian/Ubuntu 系:
      sudo ufw allow 3306/tcp
      sudo ufw enable
      
    • CentOS/RHEL 系:
      sudo firewall-cmd --add-port=3306/tcp --permanent
      sudo firewall-cmd --reload
      
  • SSL:
    server {
        listen 3306 ssl;
        ssl_certificate /etc/nginx/ssl/cert.pem;
        ssl_certificate_key /etc/nginx/ssl/key.pem;
        proxy_pass mysql_backend;
    }
    
8.3 高可用
  • 健康检查:
    upstream mysql_backend {
        server 192.168 nis:3306 max_fails=3 fail_timeout=30s;
    }
    

九、总结

本指南针对麒麟系统的 Debian/Ubuntu 和 CentOS/RHEL 系,详细介绍了安装和配置 Nginx 作为非 Web 程序的流程。核心步骤:

  1. 使用 apt(Debian/Ubuntu)或 yum/dnf(CentOS/RHEL)安装。
  2. 配置 streamhttp 模块。
  3. 通过 systemctl 管理服务。
  4. 优化性能和安全性。

建议

  • 根据系统类型选择正确包管理器。
  • 使用 Fitten Code 提升配置效率。
  • 定期检查日志和后端状态。

参考资料
  • 麒麟操作系统:https://www.kylinos.cn/
  • Nginx 文档:https://nginx.org/en/docs/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿享天开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值