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

06-01 1216阅读

麒麟系统安装 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 程序的完整指南

麒麟系统安装 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 代理 MySQL 和 HTTP 负载均衡 为例,展示配置流程,并区分 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 系:使用 yum 或 dnf。

      三、安装 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
        

        自动安装依赖(如 libpcre3、zlib1g)。

      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
          
        • 下载源码:

          wget http://nginx.org/download/nginx-1.24.0.tar.gz
          tar -zxvf nginx-1.24.0.tar.gz
          cd nginx-1.24.0
          
        • 配置编译:

          启用 stream 模块:

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

          make && sudo make install
          
        • 创建 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
          
        • 启用服务:

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

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


      四、配置 Nginx 作为非 Web 程序

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

      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:超时设置。
            • 验证配置:

              sudo nginx -t
              
            • 重启 Nginx:

              sudo systemctl restart nginx
              
            • 测试代理:

              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. 配置 stream 或 http 模块。
                            3. 通过 systemctl 管理服务。
                            4. 优化性能和安全性。

                            建议:

                            • 根据系统类型选择正确包管理器。
                            • 使用 Fitten Code 提升配置效率。
                            • 定期检查日志和后端状态。
                              参考资料
                              • 麒麟操作系统:https://www.kylinos.cn/
                              • Nginx 文档:https://nginx.org/en/docs/
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码