手动打包方式

请根据以下指导打包源成分包,防止数据、配置、日志文件在安装包外导致丢失。

  • 仅支持源码编译的Nginx,且二进制在“Nginx安装路径/sbin”目录下。
  • 手动添加迁移场景不支持通过RPM包安装的Nginx迁移。如需迁移,请使用虚拟机镜像迁移场景或手动进行迁移。

需要迁移的文件

操作步骤

  1. 在sbin目录下创建source_related目录,用于存放安装目录外依赖的静态文件、其他配置文件或目录。

    1
    2
    3
    4
    mkdir -p /home/nginx_mig_tmp
    cp -rp 源Nginx安装目录绝对路径 /home/nginx_mig_tmp
    cd /home/nginx_mig_tmp/源Nginx安装目录/sbin
    mkdir source_related
    

    以Nginx安装目录为“/opt/portadv/tools/nginx-install”为例,则源Nginx安装目录绝对路径为“/opt/portadv/tools/nginx-install”,源Nginx安装目录为nginx-install。

  2. 查看编译选项指定的依赖文件,并按需将文件按照其原目录结构拷贝至source_related目录下。

    若编译Nginx时仅指定了prefix路径,则可跳过此步骤。

    查看编译选项:

    1
    2
    cd 源Nginx安装目录/sbin
    ./nginx -V
    

    例如:若编译选项指定了--error-log-path=/var/log/nginx/error.log,执行如下命令进行拷贝,其他的编译选项同理。

    1
    2
    mkdir -p /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/var/log/nginx
    cp -p /var/log/nginx/error.log /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/var/log/nginx
    

  3. 查看源Nginx的启动配置文件,并按原目录结构拷贝至source_related下。

    若待迁移的源Nginx二进制启动时未指定配置文件路径,可以跳过此步骤。

    1
    ps -ef | grep nginx
    

    例如:若ps -ef的回显中,显示“nginx: master process {待迁移的源Nginx二进制} -c /home/nginx_confs/nginx.conf”,执行如下命令进行拷贝。

    1
    2
    mkdir -p /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/home/nginx_confs
    cp -p /home/nginx_confs/nginx.conf /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/home/nginx_confs
    

  4. 查看源Nginx的启动配置文件中引用的依赖文件或目录,并按需将相关文件按照其原目录结构拷贝至source_related目录下。

    若配置文件中没有使用include、ssl_certificate、ssl_certificate_key、ssl_dhparam、error_log、access_log、root、alias、client_body_temp_path、fastcgi_temp_path、proxy_temp_path、proxy_cache_path、scgi_temp_path、uwsgi_temp_path关键字,或引用的文件/目录都在源Nginx安装目录内,则可跳过此步骤。

    1
    vi 源Nginx的启动配置文件
    

    例如:nginx.conf中,root关键字指定了引用的html目录路径为/root/nginx/html,执行如下命令进行拷贝,其他文件或目录同理。

    1
    2
    mkdir -p /home/nginx_mig_tmp/源Nginx安装目录/root/nginx
    cp -rp /root/nginx/html /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/root/nginx
    

  5. 删除source_related目录下,重复拷贝的Nginx安装路径。

    查看源Nginx安装目录是否存在:

    1
    ll /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/源Nginx安装目录绝对路径
    

    若存在,请删除:

    1
    rm -rf /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/源Nginx安装目录绝对路径
    

  6. 将待扫描的源成分对应安装目录打包为压缩包,以tar.gz格式压缩包为例,压缩包名称请根据实际情况替换。

    1. 执行如下命令进行打包,以nginx.tar.gz为例。
      tar cvf nginx.tar.gz /home/nginx_mig_tmp
    2. 可通过以下两种方式获取源成分。
      • 若使用“源成分包上传”方式,返回“添加成分信息”页签,单击“源成分包上传”“上传”按钮,上传打包的源成分包。
      • 若使用“节点服务器获取”方式,请执行如下命令解压源成分压缩包。
        1. 使用SSH远程登录工具,将压缩包上传至“所属节点”的自定义路径。
        2. 进入保存压缩包文件的自定义目录。
          1
          cd 自定义路径
          
        3. 解压源成分压缩包。
          tar xvf nginx.tar.gz
        4. 解压完成,可选择执行如下命令删除源成分压缩包。
          rm -f nginx.tar.gz
        5. 指定解压后的文件路径为“源成分所在路径”

  7. 打包完成后请手动删除创建的“/home/nginx_mig_tmp”目录。