boost.vue 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542
  1. <template>
  2. <section>
  3. <section class="mb-boost-section">
  4. <NuxtImg class="sd-bg" src="/images/products/sd-bg.png" alt="cdn" />
  5. <div class="video-title">
  6. <h1><span>高防</span>服务器,也能<span>极致加速</span></h1>
  7. <div class="video-subtitle">
  8. <p>因为我们通过全球近源清洗,把攻击挡在千里之外,为合法流量让出了纯净快车道。</p>
  9. </div>
  10. <div class="video-btn">
  11. <span>联系我们</span>
  12. <Icon name="line-md:chevron-right" />
  13. </div>
  14. </div>
  15. </section>
  16. <section class="mb-boost-card">
  17. <div class="card-title">
  18. <h2>真正实现秒级抵御</h2>
  19. <p>让高防服务器在DDoS攻击中守护您的业务无忧</p>
  20. </div>
  21. <div class="mb-accordion">
  22. <div v-for="(item, index) in accordionItems" :key="item.title" class="accordion-item"
  23. :class="{ 'is-open': openIndices.includes(index) }" @click="toggleAccordion(index)">
  24. <div class="accordion-header">
  25. <div class="accordion-left">
  26. <span class="accordion-title">{{ item.title }}</span>
  27. </div>
  28. <Icon name="line-md:chevron-right" class="accordion-icon" />
  29. </div>
  30. <Transition name="accordion-expand">
  31. <div v-show="openIndices.includes(index)" class="accordion-body">
  32. <p class="accordion-text">{{ item.description }}</p>
  33. </div>
  34. </Transition>
  35. </div>
  36. </div>
  37. </section>
  38. <SecurityServicesSuite />
  39. <section class="mb-tabs-section">
  40. <div class="toggle-container">
  41. <div class="toggle-bg" :class="{ 'right': activeTab === 'defense' }"></div>
  42. <div class="toggle-option" :class="{ 'active': activeTab === 'accelerate' }" @click="activeTab = 'accelerate'">
  43. 加速
  44. </div>
  45. <div class="toggle-option" :class="{ 'active': activeTab === 'defense' }" @click="activeTab = 'defense'">
  46. 防御
  47. </div>
  48. </div>
  49. <div class="tab-content">
  50. <transition name="fade" mode="out-in">
  51. <div v-if="activeTab === 'accelerate'" key="accelerate" class="content-panel">
  52. <div class="content-text">
  53. <h3>高防,不应以牺牲速度为代价</h3>
  54. <div>
  55. <p> 在传统方案中,您常常面临两难选择:开启全力防御,可能影响用户体验;追求极致速度,又需在安全上承担风险。 我们的高防服务器终结了这种取舍。它通过全球近源清洗与智能路由调度的一体化架构,实现了:</p>
  56. <p> 1. <span>加速式防御</span>:攻击在远离您服务器的外围被化解,合法流量无需绕行任何冗余检查点,路径更短,延迟更低。</p>
  57. <p>2. <span>无感安全</span>:用户不会感知到任何复杂的验证或速度衰减,他们只会体验到前所未有的稳定与流畅。</p>
  58. <p> <span>这意味您的业务可以同时达成两个看似矛盾的目标:在顶级安全防护下,实现全球用户的极速访问。</span></p>
  59. </div>
  60. </div>
  61. </div>
  62. <div v-else key="defense" class="content-panel">
  63. <div class="content-text">
  64. <h3>御攻击于无形,赋业务以极速</h3>
  65. <div>
  66. <p>我们的高防服务器,重新定义了“防护”的含义。它并非在您的业务通道上设置一道需要检查的“减速闸”,而是在全球网络边缘提前构建了一个智能的“净化与调度层”。</p>
  67. <p>• <span>对于攻击流量</span>:在靠近攻击源的枢纽进行实时清洗与拦截,使其根本无权进入您的业务通道。</p>
  68. <p>• <span>对于合法用户</span>:系统自动为其选择最洁净、最短、最稳定的路径,直连您的服务器。</p>
  69. <p><span>因此,您获得的不是一个“更安全但可能更慢”的服务器,而是一个 “因极致安全而更加通畅” 的业务环境。威胁被阻挡在外,而体验畅行无内。</span></p>
  70. </div>
  71. </div>
  72. </div>
  73. </transition>
  74. </div>
  75. </section>
  76. <section class="mb-security-section">
  77. <div class="security-title">
  78. <h2>安全&nbsp;&nbsp;可靠&nbsp;&nbsp;极速</h2>
  79. <p>防御与加速,一体两面,同时生效</p>
  80. </div>
  81. <div class="features-grid">
  82. <div class="feature-item">
  83. <Icon name="material-symbols:check-circle-outline" />
  84. <span>1. 单节点2T 防御</span>
  85. </div>
  86. <div class="feature-item">
  87. <Icon name="material-symbols:check-circle-outline" />
  88. <span>2. 近源清洗,攻击止步于千里之外</span>
  89. </div>
  90. <div class="feature-item">
  91. <Icon name="material-symbols:check-circle-outline" />
  92. <span>4. 一套架构,双重使命</span>
  93. </div>
  94. <div class="feature-item">
  95. <Icon name="material-symbols:check-circle-outline" />
  96. <span>3. 提供真正的「安全加速」</span>
  97. </div>
  98. </div>
  99. <NuxtImg class="simg" src="/images/products/suo.png" alt="suo" />
  100. </section>
  101. </section>
  102. </template>
  103. <script setup>
  104. useHead(() => ({
  105. title: '高防服务器',
  106. }))
  107. import SecurityServicesSuite from '~/components/mobile/products/SecurityServicesSuite.vue'
  108. const activeTab = ref('accelerate')
  109. const accordionItems = [
  110. {
  111. title: '美/日/港三地高防节点灵活部署,助您业务即刻抵御DDoS风',
  112. description: ` • 美国节点:立足全球网络核心,提供卓越的欧美访问体验与高规格防御带宽,是进军国际市场的战略支点。
  113. • 日本节点:作为东亚数据枢纽,为日本、韩国及泛亚地区用户提供超低延迟访问,保障区域业务流畅稳定。
  114. • 香港节点:具备独特的网络中立性与中国大陆极速连接能力,是同时服务内地用户与全球业务的绝佳桥梁。`,
  115. },
  116. {
  117. title: '全球分布式近源清洗,让攻击流量无法触及您的业务核心',
  118. description: ` 我们的国际高级防御线路,为您构筑了一道远离业务核心的“防火墙”。它基于遍布全球的多个流量清洗中心,提供高达2Tbps的单点防御带宽。其核心原理在于近源清洗:当攻击流量还在国际网络枢纽中奔袭时,系统便能在最靠近攻击源的节点对其进行实时识别、分流与彻底清洗。这意味着,只有洁净、安全的流量才会被转发至您的服务器。`,
  119. },
  120. {
  121. title: '从全局架构到智能边缘,为您重定义“安全”与“速度”',
  122. description: ` 我们提供的不仅是一个高防节点,而是一张深度融合安全能力与全球加速的智能网络。 我们深知,传统的“CDN加速”与“高防服务器”是分离的两层,这常常意味着复杂的配置与潜在的性能损耗。因此,我们从根本上重新设计,基于完整的全球智能网络,原生构建了具备强大防护能力的CDN节点。 每一个CDN节点,都原生集成了与骨干网同级的DDoS清洗与Web应用加速能力。 MITM Attack。`,
  123. },
  124. ]
  125. const openIndices = ref([0])
  126. const toggleAccordion = (index) => {
  127. const i = openIndices.value.indexOf(index)
  128. if (i > -1) {
  129. openIndices.value.splice(i, 1)
  130. } else {
  131. openIndices.value.push(index)
  132. }
  133. }
  134. </script>
  135. <style scoped lang="scss">
  136. .mb-boost-section {
  137. position: relative;
  138. width: 100%;
  139. margin: 0 auto;
  140. .sd-bg {
  141. position: absolute;
  142. width: 260px;
  143. height: auto;
  144. right: 0;
  145. top: 0;
  146. // transform: translate(-50%);
  147. }
  148. .video-title {
  149. padding-top: 20px;
  150. position: relative;
  151. width: 100%;
  152. z-index: 3;
  153. color: #fff;
  154. display: flex;
  155. flex-direction: column;
  156. gap: 12px;
  157. h1 {
  158. color: #D8D3FF;
  159. font-size: 14px;
  160. font-weight: 500;
  161. span {
  162. color: #997DFF;
  163. }
  164. }
  165. .video-subtitle {
  166. color: #E2D9FF;
  167. font-size: 10px;
  168. font-weight: 400;
  169. width: 168px;
  170. }
  171. .video-text {
  172. color: #E2D9FF;
  173. font-size: 20px;
  174. font-style: normal;
  175. font-weight: 300;
  176. line-height: 30px;
  177. }
  178. .video-btn {
  179. margin-top: 16px;
  180. display: flex;
  181. box-sizing: border-box;
  182. width: 85px;
  183. height: 24px;
  184. justify-content: center;
  185. align-items: center;
  186. gap: 6px;
  187. border-radius: 4px;
  188. background: linear-gradient(91deg, #A39DFF 1.24%, #7D46FF 122.93%);
  189. span {
  190. color: #FFF;
  191. font-size: 10px;
  192. font-weight: 400;
  193. }
  194. }
  195. }
  196. }
  197. .mb-boost-card {
  198. margin-top: 22px;
  199. .card-title {
  200. display: flex;
  201. flex-direction: column;
  202. gap: 10px;
  203. align-items: center;
  204. h2 {
  205. color: #FFF;
  206. font-size: 20px;
  207. font-weight: 400;
  208. }
  209. p {
  210. font-size: 14px;
  211. font-weight: 400;
  212. background: linear-gradient(90deg, #A2C2FF 5.58%, #A47DFF 89.68%);
  213. background-clip: text;
  214. -webkit-background-clip: text;
  215. -webkit-text-fill-color: transparent;
  216. }
  217. }
  218. .mb-accordion {
  219. margin-top: 14px;
  220. display: flex;
  221. flex-direction: column;
  222. gap: 10px;
  223. .accordion-item {
  224. padding: 20px;
  225. border-radius: 10px;
  226. border: 1px solid rgba(255, 255, 255, 0.10);
  227. background: #1C192B;
  228. backdrop-filter: blur(9px);
  229. transition: border-color 0.2s ease, background 0.2s ease;
  230. overflow: hidden;
  231. &::after {
  232. content: '';
  233. position: absolute;
  234. right: -40px;
  235. bottom: -40px;
  236. width: 160px;
  237. height: 160px;
  238. border-radius: 999px;
  239. pointer-events: none;
  240. background: conic-gradient(from 45deg, #5A7DFF, #9E3BFF, #5A7DFF);
  241. filter: blur(30px) drop-shadow(0 0 20px rgba(90, 125, 255, 0.5));
  242. opacity: 0;
  243. transition: opacity 200ms ease;
  244. z-index: 0;
  245. }
  246. &.is-open::after {
  247. opacity: .4;
  248. }
  249. }
  250. .accordion-header {
  251. display: flex;
  252. align-items: start;
  253. justify-content: space-between;
  254. gap: 20px;
  255. }
  256. .accordion-left {
  257. display: flex;
  258. align-items: center;
  259. gap: 10px;
  260. }
  261. .accordion-title {
  262. color: #FFF;
  263. font-size: 14px;
  264. font-weight: 500;
  265. }
  266. .accordion-icon {
  267. color: #fff;
  268. font-size: 20px;
  269. transition: transform 0.2s ease;
  270. }
  271. .accordion-item.is-open .accordion-icon {
  272. transform: rotate(90deg);
  273. }
  274. .accordion-body {
  275. margin-top: 10px;
  276. }
  277. .accordion-text {
  278. color: rgba(255, 255, 255, 0.50);
  279. font-size: 12px;
  280. font-weight: 400;
  281. line-height: 20px;
  282. }
  283. }
  284. .accordion-expand-enter-active,
  285. .accordion-expand-leave-active {
  286. transition: all 0.2s ease;
  287. overflow: hidden;
  288. }
  289. .accordion-expand-enter-from,
  290. .accordion-expand-leave-to {
  291. opacity: 0;
  292. max-height: 0;
  293. }
  294. .accordion-expand-enter-to,
  295. .accordion-expand-leave-from {
  296. opacity: 1;
  297. max-height: 200px;
  298. }
  299. }
  300. .mb-tabs-section {
  301. margin-top: 48px;
  302. width: 100%;
  303. position: relative;
  304. &::before {
  305. content: "";
  306. position: absolute;
  307. left: 50%;
  308. top: 30px;
  309. transform: translateX(-50%);
  310. width: 287px;
  311. height: 147px;
  312. border-radius: 972px;
  313. background: linear-gradient(180deg, rgba(123, 140, 255, 0.20) 0.19%, rgba(135, 85, 255, 0.20) 46.36%);
  314. filter: blur(30px);
  315. z-index: 1;
  316. }
  317. &::after {
  318. content: "";
  319. position: absolute;
  320. left: 50%;
  321. top: 30px;
  322. transform: translateX(-50%);
  323. width: 190px;
  324. height: 90px;
  325. border-radius: 574px;
  326. background: linear-gradient(180deg, #7B8CFF 0.19%, #8755FF 46.36%);
  327. filter: blur(30px);
  328. z-index: 1;
  329. }
  330. .toggle-container {
  331. position: relative;
  332. display: flex;
  333. width: 215px;
  334. height: 52px;
  335. border-radius: 26px;
  336. border: 1px solid #CCA8FF;
  337. background: rgba(22, 19, 56, 0.50);
  338. backdrop-filter: blur(10px);
  339. cursor: pointer;
  340. overflow: hidden;
  341. user-select: none;
  342. margin: 0 auto;
  343. z-index: 10;
  344. box-sizing: border-box;
  345. }
  346. .toggle-container,
  347. .toggle-option {
  348. -webkit-tap-highlight-color: transparent;
  349. -webkit-touch-callout: none;
  350. -webkit-user-select: none;
  351. -khtml-user-select: none;
  352. -moz-user-select: none;
  353. -ms-user-select: none;
  354. user-select: none;
  355. outline: none;
  356. }
  357. .toggle-bg {
  358. position: absolute;
  359. top: 0;
  360. left: 0;
  361. width: 50%;
  362. height: 100%;
  363. background: #17133B;
  364. border-radius: 24px;
  365. transition: all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);
  366. z-index: 1;
  367. }
  368. .toggle-bg.right {
  369. transform: translateX(100%);
  370. }
  371. .toggle-option {
  372. flex: 1;
  373. display: flex;
  374. align-items: center;
  375. justify-content: center;
  376. z-index: 2;
  377. color: #9D8FFF;
  378. font-size: 16px;
  379. font-weight: 500;
  380. transition: color 0.3s;
  381. }
  382. .fade-enter-active,
  383. .fade-leave-active {
  384. transition: opacity 0.3s ease;
  385. }
  386. .fade-enter-from,
  387. .fade-leave-to {
  388. opacity: 0;
  389. }
  390. .toggle-option.active {
  391. color: #D2CCFF;
  392. }
  393. .tab-content {
  394. position: relative;
  395. width: 100%;
  396. margin: 16px auto 0;
  397. padding: 28px 16px;
  398. box-sizing: border-box;
  399. z-index: 2;
  400. border-radius: 20px;
  401. border-top: 2px solid #9F46FF;
  402. background: rgba(28, 26, 43, 0.60);
  403. backdrop-filter: blur(100px);
  404. color: #fff;
  405. .content-panel {
  406. display: flex;
  407. .content-text {
  408. display: flex;
  409. flex-direction: column;
  410. gap: 20px;
  411. h3 {
  412. text-align: center;
  413. color: #FFF;
  414. font-size: 14px;
  415. font-weight: 400;
  416. }
  417. p {
  418. color: rgba(255, 255, 255, 0.60);
  419. font-size: 12px;
  420. font-weight: 400;
  421. line-height: 24px;
  422. }
  423. span {
  424. color: #A39DFF;
  425. }
  426. }
  427. }
  428. }
  429. }
  430. .mb-security-section {
  431. margin-top: 56px;
  432. .security-title {
  433. display: flex;
  434. flex-direction: column;
  435. gap: 14px;
  436. align-items: center;
  437. h2 {
  438. color: #FFF;
  439. font-size: 20px;
  440. font-weight: 400;
  441. }
  442. p {
  443. color: #A39DFF;
  444. font-size: 14px;
  445. font-weight: 400;
  446. }
  447. }
  448. .features-grid {
  449. margin-top: 26px;
  450. margin-bottom: 16px;
  451. display: grid;
  452. grid-template-columns: repeat(2, 1fr);
  453. gap: 16px;
  454. .feature-item {
  455. display: flex;
  456. align-items: center;
  457. gap: 4px;
  458. .iconify {
  459. color: #A39DFF;
  460. width: 14px;
  461. height: 14px;
  462. }
  463. span {
  464. color: #FFF;
  465. font-size: 12px;
  466. font-weight: 400;
  467. white-space: nowrap;
  468. }
  469. }
  470. }
  471. .simg {
  472. margin: 0 -16px;
  473. width: 375px;
  474. height: auto;
  475. }
  476. }
  477. </style>