精华内容
下载资源
问答
  • 部署
    万次阅读
    2020-12-27 20:31:46

    简介

    除了配置文件的修改之外,最重要的就是应用程序的部署了。本文将会讲解如何在wildfly 21中,在Managed Domain和standalone两种模式中如何部署应用程序。

    Managed Domain中的部署

    在managed domain模式下,服务是放在很多个server中启动的,而server是和server-group相关联的。同一个server-group下的server部署是一致的。

    在managed domain模式下,需要先将要部署的应用程序上传到domain controller中,然后通过domain controller将其部署到一个或者多个server-group中。

    当然我们在domain controller中的cli环境中只需要一个deploy命令就可以做到上面的两步了。

    比如说,我们创建了一个应用程序叫做test-application.war,看下怎么进行部署:

    [domain@localhost:9990 /] deploy ~/Desktop/test-application.war
    Either --all-server-groups or --server-groups must be specified.
     
    [domain@localhost:9990 /] deploy ~/Desktop/test-application.war --all-server-groups
    'test-application.war' deployed successfully.
    

    在执行deploy命令的时候,需要指定部署到的server-groups名字,可以部署到所有的server-groups中,也可以指定特定的某些server-groups:

    [domain@localhost:9990 /] deploy ~/Desktop/test-application.war --server-groups=main-server-group,another-group
    'test-application.war' deployed successfully.
    

    部署完成之后,我们可以通过cli来查看一下部署的状态:

    [domain@localhost:9990 /] /server-group=main-server-group/deployment=test-application.war:read-resource(include-runtime)
    {
       "outcome" => "success",
       "result" => {
           "enabled" => true,
           "name" => "test-application.war",
           "managed" => true,
           "runtime-name" => "test-application.war"
       }
    }
    

    deploy可以添加–force参数,用来升级或者替换现有的程序版本:

    [domain@localhost:9990 /] deploy ~/Desktop/test-application.war --all-server-groups --force
    'test-application.war' deployed successfully.
    

    如果想取消部署,则可以使用undeploy:

    [domain@localhost:9990 /] undeploy test-application.war --all-relevant-server-groups
    Successfully undeployed test-application.war.
     
    [domain@localhost:9990 /] /server-group=main-server-group:read-children-names(child-type=deployment)
    {
       "outcome" => "success",
       "result" => []
    }
    

    部署完成之后,会在domain.xml中添加或者修改两个部分的内容,分别是deployments和server-groups:

    [...]
    <deployments>
       <deployment name="test-application.war"
                   runtime-name="test-application.war">
           <content sha1="dda9881fa7811b22f1424b4c5acccb13c71202bd"/>
       </deployment>
    </deployments>
    [...]
    <server-groups>
       <server-group name="main-server-group" profile="default">
           [...]
           <deployments>
               <deployment name="test-application.war" runtime-name="test-application.war"/>
           </deployments>
       </server-group>
    </server-groups>
    [...]
    

    管理展开的部署文件

    一般来说,如果我们要创建或者修改一个应用程序的部署文件的话,我们可以重新打包这个部署文件,然后重新部署即可。

    但是有时候,重新打包整个应用程序可能比较复杂,而我们只是想修改程序中的某一个或者某几个特定的文件。那么wildfly提供了命令行方便的实现这个功能。

    要修改打包好的部署文件,首先就是要将部署文件展开。因为部署文件一般都是以ear,war结尾的,展开的目的就是将其进行解压缩,以便我们可以修改包里面的内容。

    比如说我们现在已经部署好了一个kitchensink.ear文件,现在可以使用下面的命令将其展开:

    [domain@localhost:9990 /] /deployment=kitchensink.ear:explode()
    

    因为上面的展开命令并不是递归执行的,如果ear中包含子的部署系统war文件的话,我们可以使用path来指定展开的子系统:

    [domain@localhost:9990 /] /deployment=kitchensink.ear:explode(path=wildfly-kitchensink-ear-web.war)
    

    展开部署文件之后,我们可以使用browse-content来查看文件的列表:

    [domain@localhost:9990 /] /deployment=kitchensink.ear:browse-content(archive=false, path=wildfly-kitchensink-ear-web.war)
    {
        "outcome" => "success",
        "result" => [
            {
                "path" => "META-INF/",
                "directory" => true
            },
            {
                "path" => "META-INF/MANIFEST.MF",
                "directory" => false,
                "file-size" => 128L
            },
            ...
    }
    

    如果想查看具体某个文件的描述,则可以使用read-content:

    [domain@localhost:9990 /] /deployment=kitchensink.ear:read-content(path=META-INF/MANIFEST.MF)
    {
        "outcome" => "success",
        "result" => {"uuid" => "b373d587-72ee-4b1e-a02a-71fbb0c85d32"},
        "response-headers" => {"attached-streams" => [{
            "uuid" => "b373d587-72ee-4b1e-a02a-71fbb0c85d32",
            "mime-type" => "text/plain"
        }]}
    }
    

    注意,read-content只能读取到文件的描述符,并不能获取到文件的内容,如果想要读取文件的内容,可以使用attachment display :

    [domain@localhost:9990 /] attachment display --operation=/deployment=kitchensink.ear:read-content(path=META-INF/MANIFEST.MF)
    ATTACHMENT d052340a-abb7-4a66-aa24-4eeeb6b256be:
    Manifest-Version: 1.0
    Archiver-Version: Plexus Archiver
    Built-By: mjurc
    Created-By: Apache Maven 3.3.9
    Build-Jdk: 1.8.0_91
    

    使用attachment save命令还可以将部署文件的内容拷贝到指定的文件目录中:

    [domain@localhost:9990 /] attachment save --operation=/deployment=kitchensink.ear:read-content(path=META-INF/MANIFEST.MF) --file=/tmp/example
    File saved to /tmp/example
    

    我们可以使用add操作来创建一个空的展开部署文件:

    [domain@localhost:9990 /] /deployment=exploded.war:add(content=[{empty=true}])
    

    然后使用add-content向其中添加文件:

    [domain@localhost:9990 /] /deployment=exploded.war:add-content(content=[{target-path=WEB-INF/classes/org/jboss/as/test/deployment/trivial/ServiceActivatorDeployment.class, input-stream-index=/home/demo/org/jboss/as/test/deployment/trivial/ServiceActivatorDeployment.class}, {target-path=META-INF/MANIFEST.MF, input-stream-index=/home/demo/META-INF/MANIFEST.MF}, {target-path=META-INF/services/org.jboss.msc.service.ServiceActivator, input-stream-index=/home/demo/META-INF/services/org.jboss.msc.service.ServiceActivator}])
    

    或者使用remove-content删除其中的文件:

    [domain@localhost:9990 /] /deployment=exploded.war:remove-content(paths=[WEB-INF/classes/org/jboss/as/test/deployment/trivial/ServiceActivatorDeployment.class, META-INF/MANIFEST.MF, META-INF/services/org.jboss.msc.service.ServiceActivator])
    

    非常的方便。

    standalone模式下的部署

    standalone模式下的部署和domain模式下的部署其实是差不多的,只不过standalone模式下没有server group的概念,我们看下怎么部署和反部署:

    [standalone@localhost:9990 /] deploy ~/Desktop/test-application.war
    'test-application.war' deployed successfully.
     
    [standalone@localhost:9990 /] undeploy test-application.war
    Successfully undeployed test-application.war.
    

    standalone模式下的自动部署

    手动部署比较麻烦,需要手动输入命令才能完成部署,如果系统中已经存在了deployment-scanner这个subsystem的话,那么这个scanner会定时去扫描standalone/deployments中的文件,从而完成自动部署的工作。

    注意,在生产环境下,并不鼓励使用scanner去完成部署工作。

    我们可以在standalone.xml中对deployment-scanner进行更加具体的配置:

    <deployment-scanner scan-interval="5000" relative-to="jboss.server.base.dir"
       path="deployments" auto-deploy-zipped="true" auto-deploy-exploded="false"/>
    

    Marker Files

    Marker Files是和部署文件同名的文件,只不过在部署文件后面加上了一些后缀,比如:.dodeploy,.skipdeploy,.isdeploying,.deployed等等。

    其中比较重要的是.dodeploy和.deployed,我们可以手动创建或者删除这些文件,来控制系统的部署工作。

    比如,我们的部署文件叫做example.war,那么我们可以通过:

    cp target/example.war/ $JBOSS_HOME/standalone/deployments
    
    touch $JBOSS_HOME/standalone/deployments/example.war.dodeploy
    

    来手动部署example.war文件。

    还可以通过删除.deployed来反部署应用程序。

    rm $JBOSS_HOME/standalone/deployments/example.war.deployed
    

    如果$JBOSS_HOME/standalone/deployments/example.war.undeployed出现了,就表现系统反部署成功了。

    受管理的和不受管理的部署

    wildfly支持两种部署模式,受管理的和不受管理的部署。

    所谓不受管理的部署就是说,用户自行提供要部署的文件路径,系统直接去读取该路径上的文件。

    而受管理的部署会把要部署的文件上传到内部的仓库中,然后使用这个仓库中的内容进行后面的部署操作。

    仓库文件目录是standalone/data/content或者domain/data/content,我们看下仓库的文件格式:

    ls domain/data/content/
      |---/47
      |-----95cc29338b5049e238941231b36b3946952991
      |---/dd
      |-----a9881fa7811b22f1424b4c5acccb13c71202bd
    

    我们看一个部署文件的描述:

    <deployments>
       <deployment name="test-application.war"
                   runtime-name="test-application.war">
           <content sha1="dda9881fa7811b22f1424b4c5acccb13c71202bd"/>
       </deployment>
    </deployments>
    

    可以看到上面列出了部署文件的名字和sha1编码。WildFly主要通过这个sha1的编码去找到存储的文件。

    默认情况下,我们使用deploy命令部署的是受管理的应用,我们可以通过添加–unmanaged来部署非受管理的应用:

    [standalone@localhost:9990 /] deploy ~/Desktop/test-application.war --unmanaged
    'test-application.war' deployed successfully.
    

    这样将会存储文件的绝对路径在配置文件中,并且也不会去计算文件的hash值。

    反部署应用都是一样的命令:

    [standalone@localhost:9990 /] undeploy test-application.war
    Successfully undeployed test-application.war.
    

    部署覆盖

    有时候我们需要修改部署好的应用程序中的某些文件,除了可以解压应用程序之外,还可以使用deployment-overlay命令:

    deployment-overlay add --name=myOverlay --content=/WEB-INF/web.xml=/myFiles/myWeb.xml,/WEB-INF/ejb-jar.xml=/myFiles/myEjbJar.xml --deployments=test.war,*-admin.war --redeploy-affected
    

    总结

    wildfly的两种模式的部署就讲到这里,大家可以根据需要自行选择。

    本文作者:flydean程序那些事

    本文链接:http://www.flydean.com/wildfly-app-deployment/

    本文来源:flydean的博客

    欢迎关注我的公众号:「程序那些事」最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

    更多相关内容
  • IPS部署模式 概述: IPS(入侵防御系统)部署模式:直路部署,单臂部署,旁路部署。 IDS(入侵检测系统)部署模式:旁路部署。 IPS直路部署场景(三种情况): 当NIP作为IPS设备直路部署时,用户只需要将接口对串行...

    NIP介绍

    NIP简介:

    NIP是华为的IPS设备。

    NIP出厂时固定接口板和扩展接口卡上的业务接口都划分为固定接口对,每对接口对之间相互独立并隔离。您可以将每对接口对视作一台虚拟IPS设备或IDS设备,基于不同的接口对配置不同的应用安全策略,满足不同的安全防护需求。

    NIP的业务接口都工作在二层,能够不改变客户现有的网络拓扑结构,直接透明接入客户网络,且配置了缺省的威胁防护策略,接入网络后即可启动防护。

    NIP产品默认开启阻截的签名的比率非常高,在不影响用户正常业务的情况下,可以最大程度地化解威胁。管理员就无需对照冗长的日志来查看是否有误报,是否需要关闭一些签名等。

    IPS部署模式

    概述:

    IPS(入侵防御系统)部署模式:直路部署,单臂部署,旁路部署。

    IDS(入侵检测系统)部署模式:旁路部署。

    IPS直路部署场景(三种情况):

    当NIP作为IPS设备直路部署时,用户只需要将接口对串行接入到需要保护的网络链路上,即完成 了部署。直路部署的IPS设备,能有效防御攻击。

    情况一:

    部署互联网入口的应用场景,主要用来保护企业内网客户端的安全

    情况二:

    部署服务器前端保护企业内部信息系统(数据库、DNS服务器、Web服务器、eMail服务器等)的安全。同时,利用NIP的报表功能,管理员可以直观地了解网络的健康状况。

    情况三:

    企业各部门网络前面部署NIP,在企业总部和分支机构之间部署NIP,保护各网络内部应用的安全,同时防止安全风险向其他网络蔓延。
    即使企业的总部和分支之间是通过VPN连接的,NIP也无需做VPN解密。原因是NIP部署的位置在边界路由器或者防火墙的后面,NIP收到的报文都已解密。

    IPS直路部署可以零配置上线,上行口插a01,下行口插b01,初始情况,在接口对下调用了默认策略

    部署优缺点:

    • 优点:能对流量进行控制、零配置上线。
    • 缺点:单点故障,加大网络延时。

    IPS单臂部署:

    通过VLAN引流,单臂部署的方式的优势在于:不需要改变网络拓扑结构,节省NIP物理接口。

    当NIP作为IPS设备单臂部署或作为IDS设备时,用户只需要使用接口对中的一个接口旁挂在网络中。

    NIP在单臂部署方式下支持的功能不如直路部署方式时全面,不支持流量Bypass

    A场景:

    NIP只与交换机边一根线,交换机的G0/2口配置trunk。允许Vlan100和Vlan101,NIP上起子接口,配置Vlan100,Vlan101(配置VLAN tag,在NIP上勾选同口进出模式)

    场景B:

    NIP出厂的时候会生成如a01-b01这种接口对,从a01-流进来的会从b01流出去(反之亦然)。并且可以解vlan tag和打vlan tag。因此给a01配成vlan100,b01配成vlan200当流量从a0/2口流入到a01,然后NIP再从b01接口处到vlan200,因此流量经过NIP时,NIP发现攻击便可给予做阻断动作

    部署优缺点:

    • 优点:可以对流量做阻断。
    • 缺点:流量都要经过NIP,NIP是入侵防御系统,NIP会对数据包做重组,会对数据的传输层,网络层,应用层中各字段做分析并与签名库存做比对,如果没有问题,才转发出去。这样会加大网络的延时。同时,这里NIP会是一个单点故障,为解决这问题一般会做双机。

    IPS旁路部署:

    通过交换机镜像引流。

    NIP提供的固定接口对缺省工作在直路IPS模式,旁路部署时需要将接口对切换到IDS模式,使用接口对中的IDS接口进行旁路部署。

    旁路部署主要用来记录各类攻击事件和网络应用流量情况,进而进行网络安全事件审计和用户行为分析。在这种部署方式下一般不进行防御响应,如果有特殊需要也可以配置进行响应。旁路部署方式NIP不参与流量转发,配置的安全策略用来指定对哪些威胁进行检测并记录。

    NIP旁路部署的情况下,也具备一定的响应能力,也就是在发现威胁后,能够通过发送RST报文来 终止某个TCP流,减缓攻击的危害。

    IPS旁路部署注意点:

    • IDS设备和旁路部署的IPS设备,只检测攻击行为,不防御。
    • IDS设备和旁路部署的IPS设备不提供反病毒功能。
    • IDS设备和旁路部署的IPS设备只检测并记录攻击事件,不进行异常流量清洗。(应用层DDOS)
    • IDS设备和旁路部署的IPS设备不提供应用流量控制功能,管理员可以通过分析和报表功能,查看 网络流量中的应用组成情况
    • IDS设备、旁路部署的IPS设备以及单臂部署的IPS设备不提供网络级高可靠性。(双机热备和 Bypass卡)

    直连支持双机热备,主备模式和负载分担。

    旁路部署只支持主备模式。

    IDS部署模式

    IDS部署场景:

    IDS产品采用的是旁路部署方式,一般直接通过交换机的监听口进行网络报文采样,或者在需要监听的网络线路上放置侦听设备(如分光器)。每台交换机上只能监听到和该交换机直连的主机间的流量和通过该交换机发往其他交换机的流量,部署在其他交换机下的主机间的流量无法被监听。由于企业内网可能层次化部署交换机,这种情况下,需要将所有需要监听的网段的交换机上的流量都通过监听端口连接到IDS设备上,然后对流量进行检测分析

    总结:

    • 直路:直接串连进现网,可以对攻击行为进行实时防护,缺点是部署的时候需要断网,并增加了故障点
    • 单臂:旁挂在交换机上,不需改变现网,缺点是流量都经过一个接口,处理性能减半,另外不支持BYPASS
    • 旁路:通过流量镜像方式部署,不改变现网,缺点是只能检测不能进行防御

    IPS设备和IDS设备的主要差异在于部署位置和作用不同。IPS设备的主要部署方式是直路接入原 有网络,阻断包含攻击的连接;而IDS设备的部署方式是旁路监听,主要用于分析流量、记录各类攻击事件作为后续评估网络状况和审计的依据。IPS设备也提供了与IDS设备一样的旁路部署方式,并且支持直路/旁路混合部署,使得一 台IPS设备可以同时提供IPS和IDS的能力。

    IPS工作原理:

    NIP工作原理:

    1. 进入流量防护和整形模块,按照配置的阈值清洗掉DoS/DDoS异常攻击流量。
    2. 进入应用识别和控制模块,基于业务感知技术识别出P2P、IM、游戏等网络应用协议,并根据配置的动作进行阻断、限流等响应措施
    3. 进入报文重组模块为威胁检测做准备。重组包括IP分片重组和TCP流重组,防止一些攻击使用分片和分段技巧来躲避检测。
    4. 进入威胁防护引擎,对各类网络攻击、漏洞利用等进行防护。
      A.首先进入协议和应用识别模块,识别流量承载的协议。
      B.进入解码和归一模块,还原协议原有内容,并进行协议规范性检查
      C.进入签名检测模块,通过将报文内容和威胁防护签名进行模式匹配来检测和防范攻击。
      ​ NIP对签名的响应动作除告警、阻断外,还支持IP隔离、防火墙联动、攻击抓包等。
    5. 进入URL过滤规则匹配模块,根据配置的URL过滤规则匹配用户的URL访问请求,并作出相应的处理。
      进入文件提取模块,根据协议分析的结果,提取出其中的文件数据,并组装成完整的文件,交给病毒扫描引擎进行处理。
    6. 进入病毒扫描引擎,对文件进行分析,识别出该文件真实的文件类型后进行病毒扫描,并根据配置的动作进行阻断、告警等响应措施,防范病毒威胁。
      如果是压缩文件,则进行解压缩处理,并对解压缩出来的子文件进行分析并识别其真实的文件类型,再进行病毒扫描。
      如果不是压缩文件,则结合其真实文件类型,进行病毒扫描。

    NIP配置思路

    1. 配置管理IP
      出厂时,管理接口的IP地址设置为192.168.0.1/24,首先根据实际网络的数据规划修改管理接口的IP地址、配置默认网关和DNS服务器,然后等NIP接入网络中,这样NIP就能访问互联网、接受来自控制台的访问等。
    2. 配置接口对
      NIP出厂时a01-b01已固定成为IPS接口对
    3. 升级签名库和应用控制知识库
      NIP加载签名库后才能进行威胁防护相关的配置,加载应用控制知识库后才能进行应用控制相关的配置;
      NIP首次上电启动会自动加载出厂默认的签名库和应用控制知识库。虽然使用出厂默认的签名库和知识库也可以完成业务配置,但是建议在配置业务前先升级签名库和应用控制知识库来获取最新的防范能力。NIP进行运行维护阶段后,如无特殊情况,周期性升级签名库和应用控制知识库即可。
      升级签名库和应用控制知识库需要激活license,每台NIP都对应唯一的license文件;
    4. 配置应用安全(应用控制策略、威胁防护策略)
      NIP已经为常用的应用场景定义了威胁防护策略模板,可以直接引用策略模板生成策略,当策略模板不能满足需求时,也可以自行配置威胁防护策略。
    5. 将应用控制策略和威胁防护策略应用到接口对
      接口对是双向的,分别a01到b01和b01到a01。将威胁防护策略应用到接口对时,要将策略应用在发起访问的方向。
    6. 配置流量安全(可选)
    7. 配置带宽策略(可选)
    8. 查看日志和报表
      NIP能够将日志存入缓冲区,并直接通过NIP自动的嵌入式web服务器查看。同时,还可以配置将日志发送到NIP manager,NIP manager会将日志汇总、分析并生成报表,方便管理员了解网络中流量的具体情况。

    NIP知识点

    签名是什么?NIP签名集包括哪些内容?

    入侵防御签名用来描述网络中攻击行为的特征,NIP通过将数据流和入侵防御签名进行比较来检测和防范攻击。

    预定义签名是入侵防御特征库中包含的签名。
    预定义签名包含的内容:名称、方向、协议、严重性、描述、可信度、状态、类别、对策、参考信息、被攻击厂商列表
    每个预定义签名都有缺省的动作:放行 告警 阻断

    自定义签名是指管理员通过自定义规则创建的签名。
    自定义签名包含的内容:ID、方向、协议、严重性、描述、名称、源目地址、源目端口,源目掩码、搜索长度、搜索偏移、关键字
    每个预定义签名都有缺省的动作:阻断和告警 放行

    签名集是满足指定过滤条件的预定义签名的集合(NTP 2000 5000)
    签名集 内容包括:名称、方向、严重性、可信度、协议、类别、状态、动作。

    防火墙叫签名过滤器.

    签名过滤器:

    签名过滤器是满足指定过滤条件的集合。签名过滤器的过滤条件包括:签名的类别、对象、协议、严重性、操作系统等。

    签名过滤器的动作分为阻断、告警和采用签名的缺省动作

    签名过滤器的动作优先级高于签名缺省动作,当签名过滤器的动作不采用签名缺省动作时,以签名过滤器设置的动作为准。

    各签名过滤器之间存在优先关系(按照配置顺序,先配置的优先)。如果一个安全配置文件中的两个签名过滤器包含同一个签名,当报文命中此签名后,设备将根据优先级高的签名过滤器的动作对报文进行处理。

    例外签名:

    根据签名ID,例外签名的动作分为阻断、告警、放行和添加黑名单

    例外签名的动作优先级高于签名过滤器。如果一个签名同时命中例外签名和签名过滤器,则以例外签名的动作为准。

    注意:IPS部署方式,如果管理员允许病毒通过,采用例外签名!

    签名、签名过滤器、例外签名优先级:

    例外签名>签名过滤器>签名缺省

    IDS是如何被动防御攻击的?

    通过与防火墙联动来进行防御,最大支持3台。
    NIP会以旁路的方式接入到网络上,经过防火墙的流量同时会镜像到NIP的业务口,由NIP检测和分析应用层的攻击、漏洞、病毒、异常流量等。然后NIP把需要被阻断的报文IP地址、阻断时间信息从管理接口发送给防火墙,由防火墙实施阻断操作。

    IDS主动防御:NIP旁路部署的情况下,也具备一定的响应能力,也就是在发现威胁后,能够通过发送RST报文来 终止某个TCP流,减缓攻击的危害

    如果出现IPS误报,最快的解决方案?

    A. 做例外签名 ——- FW设备
    B. 会话中取消UTM ———FW设备

    防火墙如何匹配签名?

    NGFW将解析后的报文特征与签名进行匹配,如果命中了签名,则进行响应处理。

    IPS与AV特性对比:

    • 相同点: 两者都是基于特征检测方式,检测效果依赖于特征库的更新。
    • 不同点
      • IPS特性关注所有协议,侧重于报文内容级别的检测;反病毒特性针对特定协议(FTP/HTTP/SMTP/POP3/IMAP/NFS/SMB),侧重文件级别的检测。
      • 单就病毒检测这一块来说,两者功能有重叠,IPS特性中也包括病毒检测,但是检测力度和支持情况不如反病毒特性。IPS特性和反病毒特征是相互补充的关系,不存在取代关系

    FW和NIP都支持反病毒,设备区别?

    • FW是基于策略调用的,NIP是全局调用的。

    • 防火墙AV支持的协议类型更多,IPS(NIP 2000设备):FTP/HTTP/SMTP/POP3,而且IPS旁路部署不支持AV

    • 防火墙AV支持和 IPS(NIP 6000设备):IMAP的动作不一样,而且IPS旁路部署不支持AV

    防火墙的反病毒对IMAP支持上传和下载放行,动作为告警。

    NIP排队IMAP支持上传和下载,动作为:告警、宣告、删除附件。默认告警。

    Anti-DDoS和IPS的引流对比:

    Anti-ddos 引流方式: 策略路由引流 BGP引流

    Anti-ddos 回注方式: 二层回注、UNR路由回注、策略路由回注、GRE回注 MPLS VPN回注 MPLS LSP回注

    IPS设备引流方式: VLAN TAG 镜像

    FW IPS使用限制和注意事项:

    1. 入侵防御特征库的升级需要License支持。License过期后,用户只能使用设备已有的入侵防御功能,不能获取最新的入侵防御特征库。
    2. IPS特征库升级之后,如果之前配置的签名在特征库中已经不存在,则这条签名就会失效,该签名对应的所有配置信息也会随之失效。
    3. License加载完成后,还需要手动加载IPS特征库,这样才能正常使用入侵防御功能。
    4. 在报文来回路径不一致的组网环境中,可能无法有效检测到网络入侵。
    5. 在双机热备组网环境中,推荐在主备备份方式下开启入侵防御功能。在逐流负载分担组网环境下,支持入侵防御功能,但检测率会有所下降。

    NIP的可靠性:

    • Bypass
    • 双机热备

    NIP的部署处理过程时相比防火墙有什么特点?

    • NIP是纯二层设备
    • 正常从a01进从b01(一对对应接口对关系)出

    IPS部署方式,如果管理员允许病毒通过,该采取什么样的措施?

    写一条例外签名

    签名中去往服务器端和去往客户端有什么区别

    关注的方向不同

    展开全文
  • 部署

    千次阅读 2021-08-04 02:30:55
    部署图(deployment diagram,配置图)是用来显示系统中软件和硬件的物理架构。从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系统的结构,同时还传达...

    部署图(deployment diagram,配置图)是用来显示系统中软件和硬件的物理架构。从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式。

    中文名

    部署图

    外文名

    Deployment diagram用    途

    显示系统中软件和硬件的物理架构

    含    义

    部署方式

    部署图部署图简介

    编辑

    语音

    b08e555e828cf5bc9783759e0834a17b.gif一个UML部署图(对象管理组织2001)描述了一个运行时的硬件结点,以及在这些结点上运行的软件组件的静态视图。 部署图显示了系统的硬件,安装在硬件上的软件,以及用于连接异构的机器之间的中间件。

    部署图创建目的

    编辑

    语音

    · 探究系统投产的相关问题.

    · 探究你的系统和生产环境中的其它系统的依赖关系,这些系统可能是已经存在,或是将要引入的。

    · 描述一个商业应用主要的部署结构。

    · 设计一个嵌入系统的硬件和软件结构。

    · 描述一个组织的硬件/网络基础结构。

    部署图指南

    编辑

    语音

    简介

    在特定的项目图上注明软件组件;集中在企业级图上的结点和通信关联

    结点和组件

    用描述性术语命名结点;仅仅建模重要的软件组件;为组件一致地应用一致版型;把可视化的版型应用到结点

    依赖和通信关联

    用版型来注明通信协议;仅仅建模组件间的关键性依赖

    部署图通用准则

    编辑

    语音

    a3b19b97a84298c7d4dc04a3916a4241.gif在特定的项目图上注明软件组件图1是一个大学管理系统的UML部署图描述. 该图描述了那些包含单一应用程序的主要软件组件是怎样配置到生产环境中的,这使得项目团队能够确定他们的部署策略。2.集中在企业级图上的结点和通信关联

    UML部署图经常被认为是一个网络图或技术架构图,图2是该风格的一个例子,它描述了一个简单组织的技术基础结构。 注意图2是一个非常简单的例子,像这样的图,许多组织将会有几十甚至几百个结点。

    虽然在图的有限范围内注明组件的部署情况是可以显示它的作用的,例如图1,但图很快地就变得笨重起来。 图2则关注于企业的那些高阶部署,因此配置在硬件结点之上的软件组件的精细的、细节的东西就不需要显示出来,你可以在你的CASE工具中处理这些信息,但这并不意味着你需要在图上显示它们。

    部署图结点组件

    编辑

    语音

    简介

    一个结点,通常描述成一个立体的盒子,表示一个计算设备,一般是一个单独的硬件设备,例如一台电脑,网络路由器,主机,传感器,或个人数字助理(PDA)。 组件,描述为矩形,左侧面还伸出两个较小矩形,这和UML组件图上使用的符号是相同的,它表示软件的中间产物,例如文件、框架、或领域组件。

    术语命名结

    在图1中,你可以看到结点都有名称,例如client、Application Server、Database Server、和Mainframe。 所有的这些术语都需要即刻为组织内的开发人员所认可,因为这些条款都是他们日常使用的。 保持它的简单性。

    软件组件

    虽然图1包含软件组件,但它没有描述每一个软件组件。 例如,客户机上很可能还安装有其他的软件组件,如操作系统和应用软件,但那些组件没有显示出来,因为它们已经离题了。 事实是每个结点也许有几十甚至几百的软件组件配置于其上,你的目标并不是描述所有的软件组件,而是只需要描述那些对系统的列节至关重要的组件。如果你需要探究软件组件间的关系,你应该创建一个UML组件图作为替代,遵循敏捷建模( AM) ( Ambler 2002)的应用"合适的Artifact"的实践。

    一致版型

    在UML部署图上为组件应用和UML组件图中的相同的版型。

    把可视化的版型应用到结点

    图2使用可视化的版型来描述结点描述结点,例如mobile PC是显示为一个笔记本,而databases则使用传统的数据库的圆筒符号来表示。 为UML部署图上应用可视化版型制定标准是不可能的,一般的经验法则是使用你看得到的适当的剪贴画。

    部署图通信关联

    编辑

    语音

    简介

    通信关联,经常称为连接,被描述为连接结点间的线条。组件间的依赖则被建模成虚线箭头,这和其他UML图上使用的符号是一样的。

    用版型来注明通信协议

    通信关联支持一个或多个通信协议,每一个都应该使用一个UML版型来描述。 图1中你可以看到HTTP、JDBC、和web services协议,他们就是使用了这个方法。

    表1提供了一个典型的通信关联的版型列表,你的组织也许会想开发自己的特定标准。

    表1.通用的版型为通信关联

    版型 含意。

    异步 一个异步连接,也许经由一个消息总线或消息队列。

    JDBC Java数据库连接,一套为数据库存取编写的Java API。

    ODBC开放式数据库连接,一套微软的数据库存取应用编程接口。

    RMI 远程方法调用,一个Java的通信协议。

    RPC 经由远程过程调用的通信。

    同步 一个同步连接,发送器等待从接收器回来的反应。

    web services 经由诸如SOAP和UDDI的Web Services协议的通信。[1]

    仅仅建模组件间的关键性依赖

    图1中配置在??来,因为它们和图并没有什么关系(而且它们最好是在UML组件图上建模具体的细节)。 然而,在数据库服务器上的组件间的依赖则被建模出来,因为它有助于展示数据库的访问。领域组件对数据库的方位是间接的,他们需要通过一个持久性框架,这是通用的架构最佳实践( Ambler 2001)。 遵循AM的实践,简单的描述建模。仅仅建模和手头的任务相关的信息。

    词条图册

    更多图册

    参考资料

    展开全文
  • 如何在Kubernetes上部署MySQL数据库

    万次阅读 多人点赞 2020-08-16 10:09:36
    Operators将数据库部署到Kubernetes 在Kubernetes上部署数据库是否可行? 1.完全托管的数据库 2.在VM或本地自行部署 3.在Kubernetes上运行 在Kubernetes上部署有状态应用程序: 步骤1:部署MySQL服务 步骤2:...

    原文发表于kubernetes中文社区,为作者原创翻译 ,原文地址

    更多kubernetes文章,请多关注kubernetes中文社区

    目录

    Kubernetes和数据库

    数据库

    StatefulSet

    Kubernetes上的数据库

    Operators将数据库部署到Kubernetes

    在Kubernetes上部署数据库是否可行?

    1.完全托管的数据库

    2.在VM或本地自行部署

    3.在Kubernetes上运行

    在Kubernetes上部署有状态应用程序:

    步骤1:部署MySQL服务

    步骤2:部署MySQL Deployment

    第3步:创建持久卷

    第4步:创建持久卷声明

    步骤5:测试MySQL数据库

    总结


    Kubernetes和数据库

    Kubernetes是开发中一项重大的改进,而数据库是应用程序的重要组成部分。在本文中,我们将展示如何在Kubernetes中部署数据库,以及可以使用哪些方法在Kubernetes中部署数据库。

    数据库

    数据库是一种用于在计算机系统上存储和处理数据的系统。数据库引擎可以在数据库上创建,读取,更新和删除。数据库由数据库管理系统(DBMS)控制。

    在大多数数据库中,数据按行和列进行建模,称为关系型,这种类型的数据库在80年代占主导地位。在2000年代,非关系数据库开始流行,被称为No-SQL,它们使用不同的查询语言,并且这些类型的数据库可用于键值对。

    StatefulSet

    在本文中,我们将在Kubernetes中部署数据库,因此我们必须了解什么是StatefulSet。

    StatefulSet是用于管理有状态应用程序的工作负载。它管理一组Pod的实现和扩展,并保证这些Pod的顺序和唯一性。

    像Deployment一样,StatefulSet也管理具有相同容器规范的一组Pod。由StatefulSets维护的Pod具有唯一的,持久的身份和稳定的主机名,而不用管它们位于哪个节点上。如果我们想要一个跨存储的持久性,我们可以创建一个持久性卷并将StatefulSet用作解决方案的一部分。即使StatefulSet中的Pod容易发生故障,存储卷与新Pod进行匹配也很容易。

    StatefulSet对于需要以下一项或多项功能的应用程序很有价值:

    • 稳定的唯一网络标识符。

    • 稳定,持久的存储。

    • 有序,顺畅的部署和扩展。

    • 有序的自动滚动更新。

    在Kubernetes上部署数据库时,我们需要使用StatefulSet,但是使用StatefulSet有一些局限性:

    • 需要使用持久性存储卷为Pod提供存储。

    • 删除副本或按比例缩小副本将不会删除附加到StatefulSet的存储卷。存储卷确保数据的安全性。

    • StatefulSet当前需要Headless Service 来负责Pod的网络标识。

    • 与Deployment 不同,StatefulSet不保证删除StatefulSet资源时删除所有Pod,而Deployment在被删除时会删除与Deployment关联的所有Pod。在删除StatefulSet之前,你必须将pod副本数量缩小到0 。

    Kubernetes上的数据库

    我们可以将数据库作为有状态应用程序部署到Kubernetes。通常,当我们部署Pod时,它们具有自己的存储空间,但是该存储空间是短暂的-如果容器被杀死了,则其存储空间将随之消失。

    因此,我们需要有一个Kubernetes资源对象来解决这种情况:当我们想要数据持久化时,我们就把Pod和持久化存储卷声明关联。通过这种方式,如果我们的容器被杀死了,我们的数据仍将位于集群中,新的pod也能够相应地访问数据。

    Pod -> PVC-> PV

    • PV =持久性存储

    • PVC =持久性存储声明

    Operators将数据库部署到Kubernetes

    • 我们可以使用由Oracle开发的Kubernetes Operators来部署MySQL数据库:

    https://github.com/oracle/mysql-operator

    • 使用Crunchydata开发的PostgreSQL Operators,、将PostgreSQL部署到Kubernetes:

    https://github.com/CrunchyData/postgres-operator

    • 使用MongoDB开发的Operators,可将MongoDB Enterprise部署到Kubernetes集群:

    https://github.com/mongodb/mongodb-enterprise-kubernetes

    在Kubernetes上部署数据库是否可行?

    在当今世界上,越来越多的公司致力于容器技术。在进行深入研究之前,让我们回顾一下用于运行数据库的选项。

    1.完全托管的数据库

    完全托管的数据库是那些不用自己来管理的数据库-这种管理可以由AWS Google,Azure或Digital Cloud等云提供商完成。托管数据库包括Amazon Web Services,Aurora DynamoDB或Google Spanner等。

    使用这些完全托管的数据库的优势是操作少,云提供商可以处理许多维护任务,例如备份,扩展补丁等。你只需创建数据库即可构建应用程序,其他的由云提供商帮你处理。

    2.在VM或本地自行部署

    使用此选项,你可以将数据库部署到任何虚拟机(EC2或Compute Engine),并且将拥有完全控制权。你将能够部署任何版本的数据库,并且可以设置自己的安全性和备份计划。

    另一方面,这意味着你将自行管理,修补,扩展或配置数据库。这将增加基础架构的成本,但具有灵活性的优势。

    3.在Kubernetes上运行

    在Kubernetes中部署数据库更接近full-ops选项,但是从Kubernetes提供的自动化方面来看,你将获得一些好处--能够保持数据库应用程序的正常运行。

    要注意,pod是短暂的,因此数据库应用程序重新启动或失败的可能性更大。另外,你将负责更具体的数据库管理任务,例如备份,扩展等。

    选择在Kubernetes上部署数据库时要考虑的一些重要点是:

    • 有一些自定义资源和 operators可用于在Kubernetes上管理数据库。

    • 具有缓存层和瞬时态存储的数据库更适合Kubernetes。

    • 你必须了解数据库中可用的复制模式。异步复制模式为数据丢失留有空间,因为事务可能会提交给主数据库,而不会提交给从数据库。

     

    上面,我们用一个简单的图表来显示在Kubernetes上部署数据库时的决策。

    首先,我们需要尝试了解数据库是否具有与Kubernetes友好的功能,例如MySQL或PostgreSQL,然后我们查找kubernetes operators将数据库与其他功能打包在一起。

    第二个问题是-考虑到在Kubernetes中部署数据库需要多少工作量,这是可以接受的?我们是否有一个运维团队,或者在托管数据库上部署数据库是否可行?

    在Kubernetes上部署有状态应用程序:

    步骤1:部署MySQL服务

    apiVersion: v1
    kind: Service
    metadata:
      name: mysql
    spec:
      ports:
      - port: 3306
      selector:
        app: mysql
      clusterIP: None

    首先,我们在端口3306上为MySQL数据库部署服务,所有Pod均具有标签键app: mysql。

    接下来,创建以下资源:

    Kubectl create -f mysql_service.yaml

    步骤2:部署MySQL Deployment

    apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
    kind: Deployment
    metadata:
      name: mysql
    spec:
      selector:
        matchLabels:
          app: mysql
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            app: mysql
        spec:
          containers:
          - image: mysql:5.6
            name: mysql
            env:
              # Use secret in real usage
            - name: MYSQL_ROOT_PASSWORD
              value: password
            ports:
            - containerPort: 3306
              name: mysql
            volumeMounts:
            - name: mysql-persistent-storage
              mountPath: /var/lib/mysql
          volumes:
          - name: mysql-persistent-storage
            persistentVolumeClaim:
              claimName: mysql-pv-claim

    此Deployment在3306端口上创建带有MySQL5.6镜像和密码(使用secret)的Pod。我们还将附加一个持久卷mysql-pv-claim,将在接下来的步骤中进行显示。

    创建资源:

    Kubectl create -f mysql_deployment.yaml

    第3步:创建持久卷

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: mysql-pv-volume
      labels:
        type: local
    spec:
      storageClassName: manual
      capacity:
        storage: 20Gi
      accessModes:
        - ReadWriteOnce
      hostPath:
        path: "/mnt/data"

    这将创建一个持久卷,我们将使用它来附加到容器,以确保Pod重启时的数据安全。该持久卷具有ReadWriteOne访问模式,拥有20GB的存储空间,存放路径是/ mnt/data,我们所有的数据都将保存在该路径中。

    创建以下资源:

    Kubectl create -f persistence_volume.yaml

    第4步:创建持久卷声明

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: mysql-pv-claim
    spec:
      storageClassName: manual
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 20Gi

    该声明从上面创建的“持久卷”中声明20GB,并具有与上面的“持久卷”相同的访问模式。

    创建以下资源:

    Kubectl create -f pvClaim.yaml

    步骤5:测试MySQL数据库

    kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -- mysql -h mysql -ppassword
    

    此命令在运行MySQL的集群中创建一个新的Pod,并连接到MySQL服务器。如果连接成功,则说明你的MySQL数据库已启动并正在运行。

    Waiting for pod default/mysql-client-274442439-zyp6i to be running, status is Pending, pod ready: false
    If you don't see a command prompt, try pressing enter.
    
    mysql>
    

    以上完整代码存放在这个位置:https://github.com/zarakM/mysql-k8.git

    总结

    • 有状态应用程序是存储用户会话状态的应用程序,保存的数据称为应用程序状态。

    • StatefulSet是一个Kubernetes资源对象,用于管理有状态应用程序,并提供有关Pod顺序和唯一性的保证。

    • 通过删除StatefulSet,不会删除StatefulSet中的pod。相反如果删除,你必须将有状态应用程序副本数量缩小为0。

    • Kubernetes上的数据库部署有一个持久存储卷,只要你的集群正在运行,该存储卷就可以永久存储数据。这意味着它可以抵御pod的破坏,并且创建的任何新pod将能够再次使用该存储卷。

    • 完全托管的数据库是由云提供商管理的数据库。我们不必管理数据库。这些数据库需要额外的费用,但是如果你想专注于应用程序,它们是最佳选择。

    • 你可以通过VM部署数据库。但你将必须处理所有数据库操作,例如扩展,设置和修补。

    • 最后,我们展示了如何在Kubernetes上部署数据库。

    译文链接: https://www.magalix.com/blog/kubernetes-and-database

    展开全文
  • SSL部署

    千次阅读 2022-04-01 23:25:05
    网站SSL申请与部署
  • 项目自动化部署与手动部署

    千次阅读 2022-03-01 16:53:11
    DevOps 传统的开发模式: ...持续部署: 阿里云服务器的配置 这里选择的是 CentOS 8.2。 重置系统后在远程连接中设置 root 密码。 安全 - 防火墙:配置暴露的端口号限制的 ip 地址来源。0.0.0.0 表示任何
  • 云端部署 vs 本地化部署

    千次阅读 2021-12-04 17:57:29
    到底把应用部署在本地还是部署在公有云上?应用部署在本地还是部署在公有云上,到底有什么区别?
  • 蓝绿部署、 滚动部署、 灰度部署、 金丝雀部署、 功能开关发布、 影子测试
  • RuoYi-Vue项目部署流程

    千次阅读 2021-04-16 11:55:13
    RuoYi-Vue项目部署,后端部署jar部署、war部署;前端部署,使用nginx部署、tomcat部署
  • k8s搭建部署(超详细)

    万次阅读 多人点赞 2022-03-01 16:06:50
    它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。 通过Kubernetes你可以: 快速部署应用 快速扩展应用 无缝对接新的应用功能 节省资源,优化硬件资源的使用 ...
  • 部署Jenkins

    千次阅读 2022-01-25 23:09:15
    既然需要借助Jenkins来实现持续集成、交付和监控等工作,那么必须需要将其部署在一台7X24小时开机的服务器上,一般来说,这是一台Linux服务器。
  • 前端项目部署流程

    万次阅读 2021-10-28 10:47:00
    前端项目部署流程 1.首先我们需要有一台服务器,这里我用的是阿里云ecs服务器。选择的服务器操作系统是linux,下面我们开始从0开始部署一个前端项目到服务器上。 步骤: 一、链接服务器 (1). 我们需要先在自己电脑...
  • Tomcat安装使用与部署Web项目的三种方法

    千次阅读 多人点赞 2022-08-04 20:33:01
    今天带来Tomcat的安装教程,也会讲到各种目录下代表的含义,重点是在Tomcat服务器上面部署Web项目的三种方法。 以上便是Tomcat从零到部署项目的教程了,觉得写的不错或者对你有帮助的话,三连支持博主吧~......
  • springboot项目部署 + vue项目部署

    千次阅读 2022-04-11 17:01:28
    部署一个简单的前后端分离的博客项目 springboot项目部署 第一步:打包springboot项目(jar包) 第二步:将jar(项目的target目录下)包上传到云服务器上(Xftp) 第三步:新建nohup.out文件(Xshell) 第四步:后台运行...
  • 对应若依前后端分离项目来说,部署的方式有很多种: 第1种方式:可以将前端打包整合到后端部署 第2种方式:可以使用tomcat部署(后端打war包+前端打dist包) 第3种方式:可以使用tomcat+nginx部署(后端打war包+...
  • Spring Boot 热部署

    千次阅读 2022-04-20 10:36:17
    三种热部署方式 1:spring-boot-devtools 2:Spring Loaded 比较繁琐 3:JrebelJRebel是一款收费的服务,可以通过官网进行激活码购买。 因此主要采用第一种方式实现热部署 1.修改idea配置 ctrl+alt+s 修改...
  • zabbix部署安装

    千次阅读 2022-01-25 17:11:34
    abbix监控 环境准备: 三台rh7.6版本虚拟机, server6:zabbix-server server7、8:zabbix-agent zabbix安装 安装源码库配置部署包,包含了yum配置文件 安装部署包 yum install zabbix-web-mysql-scl zabbix-apache...
  • 项目部署的完整流程

    万次阅读 多人点赞 2020-07-09 12:26:04
    作为一个合格的程序猿,仅仅会打代码还是远远不够的,项目的部署也是我们必须要会的操作,也就是所谓的上线,将我们本地开发好的项目部署到远程服务器上,使得任何机器都可以通过我们远程服务器的公网ip或者域名加上...
  • kafka部署

    千次阅读 2022-05-16 11:07:48
    1、准备 1.安装包 1.Java环境jdk:...暂定:jdk-8u261-linux-x64.tar.gz + kafka_2.12-2.1.1.tgz 2.环境配置 1.配置Java环境(见附录) 2、单机部署 1.cd /usr/local/ 2.将kafka_2.12-2.1.1.tgz
  • SpringBoot项目部署

    千次阅读 2021-11-19 17:40:22
    1.jar包部署(官方推荐) SpringBoot项目默认打包成jar包 jar包方式启动,也就是使用SpringBoot内置的tomcat运行。服务器上面只要你配置了jdk1.8及以上就ok,不需要外置tomcat。 a.首先在pom.xml文件中导入...
  • 方法一:前后端分开部署 一、前端部署 1、下载 nginx,官方网址如下: http://nginx.org/en/download.html
  • Flink 部署

    千次阅读 2022-03-26 13:33:23
    这里需要提到 Flink 中的几个关键组件:客户端(Client)、作业管理器(JobManager)和任务管理器(TaskManager)。我们的代码,实际上是由客户端获取并做转换,之后提交给 JobManger 的。所以 JobManager 就是 ...
  • 2、MEC 的部署位置 UPF 的部署位置 ME Host 的部署位置 3、MEC 的部署场景 MEC 在 4G ⽹络中的部署 透明串接⽅案 分布式⽹关⽅案 MEC 在 5G ⽹络中的部署 4、MEC 的部署模式 MEC 与 UPF ...
  • 本文介绍两者的区别,点出哪些企业更适合私有化部署,并介绍私有化部署中的“老字号”——天翎MyApps平台。 公有云部署/私有化部署的区别 市面上低代码平台成千上万,相信大部分用户在对低代码平台进行选型时会...
  • 编者按:随着互联网和云计算技术的发展与普及,数据安全成为企业管理中的一大重点,我们常常会听到私有化部署和本地化部署这两个高频词汇,那么,它们分别代表什么意思?企业又到底该如何选择将数据储存在哪里呢? ...
  • 基于Docker部署Skywalking

    千次阅读 2022-04-15 11:50:36
    Skywalking简介    ...Docker部署Skywalking步骤 部署Elasticsearch 部署Skywalking OAP 部署Skywalking UI 应用程序配合Skywalking Agent部署 部署Elasticsearch     这里基于Do
  • 这是六年前他写下的一篇关于**编程喵**开源项目如何一键部署在云服务器上的方案,现在看起来虽然有些稚嫩,但足够的详细,使用起来也非常的便捷。有需要的小伙伴可以拿来作为参考和借鉴。...
  • 第一步:把项目部署包放在服务器指定目录(webapps)下,让服务器可以找到项目资源;或者通过配置文件让服务器可以找到项目资源。 第二步:把项目的访问路径、资源映射等数据加载进内存中,这样客户端请求资源的时候...
  • WAF基本原理与部署方式

    万次阅读 多人点赞 2020-06-14 10:34:16
    WAF常见的部署方式: WAF常见部署方式 WAF一般部署在Web服务器之前,用来保护Web应用。 那么WAF能做什么? WAF可以过滤HTTP/HTTPS协议流量,防护Web攻击。 WAF可以对Web应用进行安全审计 WAF可以防止CC攻击 应用
  • IIS部署步骤

    千次阅读 2022-01-27 13:43:03
    IIS部署及应用服务网站的发布

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,550,996
精华内容 1,020,398
关键字:

部署