银河麒麟V10-SP1离线环境下的nginx编译部署与实战配置

张开发
2026/4/18 10:40:42 15 分钟阅读

分享文章

银河麒麟V10-SP1离线环境下的nginx编译部署与实战配置
1. 银河麒麟V10-SP1离线环境概述银河麒麟V10-SP1作为国产操作系统的代表在政府、金融等对安全性要求较高的领域应用广泛。这些场景中服务器往往处于物理隔离的内网环境无法直接连接互联网获取软件包。这就给nginx这类常用Web服务的部署带来了挑战——我们需要在完全离线的情况下完成从源码编译到服务配置的全过程。我曾在多个政务云项目中遇到过类似需求发现离线环境最大的痛点在于依赖链断裂。nginx编译需要openssl、zlib、pcre三个核心组件而这些组件本身可能还有次级依赖。如果漏掉任何一个环节就会导致编译失败。因此完整的离线部署需要提前准备好所有依赖包的源码并规划好编译顺序。2. 离线环境准备工作2.1 系统环境确认首先通过以下命令确认系统版本cat /etc/kylin-build典型输出应该是Kylin Linux Advanced Server release V10 (SP1)。这一步很重要因为不同版本的银河麒麟可能存在库文件差异。2.2 源码包准备需要提前下载好以下组件的源码包以当前稳定版为例nginx-1.25.3.tar.gzopenssl-3.1.4.tar.gzzlib-1.3.tar.gzpcre2-10.42.tar.gz建议在能联网的机器上通过官网下载然后用U盘或内网传输工具将这些包复制到目标服务器。我习惯在/home目录下创建softwares目录统一存放这些源码包mkdir -p /home/softwares3. 依赖组件编译安装3.1 OpenSSL编译openssl是nginx实现HTTPS加密的关键依赖。解压后进入目录tar -zxvf openssl-3.1.4.tar.gz cd openssl-3.1.4编译时建议使用shared参数生成动态库./config shared --prefix/usr/local/openssl make -j4 make install这里的-j4参数表示使用4个线程加速编译可以根据CPU核心数调整。安装完成后需要更新动态链接库缓存echo /usr/local/openssl/lib /etc/ld.so.conf ldconfig3.2 Zlib编译zlib提供了数据压缩功能解压后编译tar -zxvf zlib-1.3.tar.gz cd zlib-1.3 ./configure --prefix/usr/local/zlib make make install3.3 PCRE编译PCRE是正则表达式库nginx用它处理location匹配规则tar -zxvf pcre2-10.42.tar.gz cd pcre2-10.42 ./configure --prefix/usr/local/pcre make make install4. Nginx编译与安装4.1 解压与配置解压nginx源码包并进入目录tar -zxvf nginx-1.25.3.tar.gz cd nginx-1.25.3关键配置命令需要指定前面安装的依赖路径./configure \ --prefix/usr/local/nginx \ --with-openssl/usr/local/openssl \ --with-zlib/usr/local/zlib \ --with-pcre/usr/local/pcre \ --with-http_ssl_module \ --with-http_v2_module4.2 编译与安装执行编译安装make -j4 make install安装完成后可以检查nginx版本/usr/local/nginx/sbin/nginx -v5. 服务管理与配置5.1 启动与停止启动nginx服务/usr/local/nginx/sbin/nginx停止服务的两种方式# 快速停止 /usr/local/nginx/sbin/nginx -s stop # 优雅停止 /usr/local/nginx/sbin/nginx -s quit5.2 反向代理配置修改nginx.conf实现基础反向代理server { listen 80; server_name localhost; location / { proxy_pass http://backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }重载配置使生效/usr/local/nginx/sbin/nginx -s reload6. 常见问题排查6.1 依赖缺失错误如果启动时报错libssl.so.3: cannot open shared object file说明动态库路径有问题。检查ldd /usr/local/nginx/sbin/nginx确保所有依赖都能找到对应路径。6.2 端口冲突如果80端口被占用可以改用其他端口server { listen 8080; ... }6.3 权限问题nginx默认以nobody用户运行如果遇到权限问题可以修改user www-data;7. 性能优化建议7.1 工作进程配置根据CPU核心数设置worker_processesworker_processes auto;7.2 连接数优化调整events模块参数events { worker_connections 1024; multi_accept on; }7.3 启用Gzip压缩在http模块中添加gzip on; gzip_types text/plain application/xml;在实际部署中我发现银河麒麟V10-SP1的默认防火墙规则可能会拦截nginx端口需要额外注意。另外由于是离线环境建议将编译好的nginx及其依赖打包成rpm或deb包方便在其他同类服务器上快速部署。

更多文章