文档首页/ 部署 CodeArts Deploy/ 最佳实践/ 通过代理主机在内网部署应用
更新时间:2024-12-02 GMT+08:00

通过代理主机在内网部署应用

应用场景

通过代理主机在内网部署应用,能有效控制内外网通信,增强数据安全与网络性能,同时满足合规性要求;这一策略广泛应用于资源访问控制、数据中心间安全通信、内容缓存加速、环境隔离、安全审计及敏感数据处理等多个关键场景。

方案架构

采用squid代理服务中的Internet正向代理功能,在代理主机上指定目标主机的地址和端口,实现目标主机的公网访问。

想了解squid更多相关知识,请前往squid官网。下面以Linux系统机器进行演示。

前提条件

  • 一台绑定公网IP的“代理主机-B”,若无主机可参考申请ECS
  • 一台未绑定公网IP的“目标主机-A”。
  • “代理主机-B”与“目标主机-A”可通过内网进行互相访问。

操作流程

本节介绍如何将应用通过代理主机部署到内网的主机或服务器。

图1 操作流程示意图

  1. 安装squid代理服务。

    进入“代理主机-B”的命令行工具,执行以下命令:

    yum install squid -y

    若回显最后为“Complete”,可继续执行以下命令:

    yum install iptables-services 

    回复“Y”,回显最后为“Complete”,即为安装完成。

  2. 编辑squid配置文件。

    1. 进入“代理主机-B”的命令行工具,执行以下命令:
      vim /etc/squid/squid.conf

    2. 在上图红框位置添加以下命令:
      acl local src 主机的内网IP/24 
    3. “ESC”键,输入“:wq”,退出并保存。

  3. 配置“代理主机-B”防火墙。

    进入“代理主机-B”的命令行工具,依次执行以下命令:

    systemctl stop firewalld.service 
    systemctl disable firewalld.service
    yum install iptables-services iptables-devel -y
    systemctl enable iptables.service
    systemctl start iptables.service
    iptables -I INPUT 1 -s 主机的内网IP/24 -p tcp --dport 3128 -j ACCEPT
    iptables -I INPUT 2 -p tcp --dport 3128 -j DROP 

    其中倒数第二行的IP需配置为“目标主机-A”的内网IP网段或IP,3128是squid的代理端口。

  4. 安装openssl。

    进入“代理主机-B”的命令行工具,执行以下命令:

    yum install openssl 

    回显最后为“Complete”,即为安装完成。

  5. 启动squid代理服务。

    进入“代理主机-B”的命令行工具,执行以下命令:

    systemctl start squid     //启动squid代理服务
    systemctl status squid    //检查squid状态

  6. 配置正向代理。

    进入“目标主机-A”的命令行工具,执行以下命令:

    echo "export http_proxy=http://代理机的内网IP:3128" >>/etc/profile
    echo "export https_proxy=http://代理机的内网IP:3128" >>/etc/profile
    echo "export http_proxy=http://代理机的内网IP:3128" >>~/.bashrc
    echo "export https_proxy=http://代理机的内网IP:3128" >>~/.bashrc
    echo "export http_proxy=http://代理机的内网IP:3128" >>~/.bash_profile
    echo "export https_proxy=http://代理机的内网IP:3128" >>~/.bash_profile
    source /etc/profile
    source ~/.bashrc
    source ~/.bash_profile

  7. 新建基础资源。

    1. 单击“首页”可以查看已创建的所有项目,进入目标项目下。
    2. 单击菜单“设置 > 通用设置 > 基础资源管理”,默认进入“主机集群”页面。

      或单击菜单“持续交付 > 部署”,进入项目下部署服务界面。单击“基础资源管理”默认进入“主机集群”页面。

    3. 单击“新建主机集群”,填写以下信息后,单击“保存”,完成主机集群的创建。

      参数项

      是否必填

      说明

      集群名称

      请输入自定义的主机集群名称。

      操作系统

      根据即将添加主机的操作系统,选择“Linux”

      主机连通方式

      选择代理模式。

      执行主机

      资源池是部署软件包时执行部署命令的物理环境的集合,本场景执行主机采用官方资源池

      描述

      请输入对主机集群的描述。

    4. 单击“添加或导入主机”,“选择添加方式”选择“通过IP手动添加”,填写以下信息后,单击“确定”,完成代理主机的创建。
      表1 Linux系统代理主机参数说明

      参数项

      是否必填

      说明

      主机名

      请输入自定义的代理主机名称,示例:代理主机-B。

      IP

      请输入“代理主机-B”所绑定的公网IP地址。

      操作系统

      不可更改,默认为当前主机集群的操作系统。

      认证方式

      本场景使用密码进行认证,输入的是“代理主机-B”的用户名及密码。

      SSH端口

      推荐使用22端口。

    5. 单击“添加或导入主机”,“选择添加方式”选择“通过IP手动添加”,填写以下信息后,单击“确定”,完成目标主机的创建。
      表2 Linux系统目标主机参数说明

      参数项

      是否必填

      说明

      主机名

      请输入自定义的目标主机名称,示例:目标主机-A。

      代理主机

      请选择“代理主机-B”为无法连接公网的目标主机进行网络代理。

      IP

      请输入“目标主机-A”的私有IP地址。

      操作系统

      不可更改,默认为当前主机集群的操作系统。

      认证方式

      本场景使用密码进行认证,输入的是“目标主机-A”的用户名及密码。

      SSH端口

      推荐使用22端口。

    6. 单击某个主机操作列的图标,即可启动该主机进行连通性验证操作。

  8. 新建应用。

    1. 登录软件开发生产线首页,单击目标项目名称,进入项目首页。
    2. 单击菜单“持续交付 > 部署”,进入项目下部署服务界面。
    3. 单击“新建应用”,进入“基本信息”页面,可根据需要修改名称、描述、执行主机等基本信息。
    4. 完成应用基本信息的编辑后,单击“下一步”,进入选择部署模板页面,选择“空白模板”,单击“确定”。
    5. 进入“部署步骤”页面,在右侧步骤列表中,单击目标步骤的“添加”键,可将该部署步骤添加到左侧的步骤编排区中。
    6. 进入“环境管理”页面,单击“新建环境”,输入环境基本信息,单击“保存”完成新建。
    7. 单击“导入主机”,系统已自动筛选符合当前环境的所有集群,在弹框中选择目标主机集群,将“代理主机-B”“目标主机-A”导入环境中。

  9. 部署应用,详细操作可参考部署CodeArts Deploy应用

    1. 应用列表中选择待部署应用,单击图标,即可部署该应用。
    2. 部署完成后,单击应用名称,单击目标部署记录,应用状态栏的颜色变成绿色,并显示“部署成功”,则表示此次部署应用成功。