openresty/html/index.html

166 lines
126 KiB
C
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>
<title>Welcome to OpenResty!</title>
<style>
:root {
--main-bg-color: rgb(82, 172, 66);
--secondary-bg-color: rgb(213, 234, 201);
--main-text-color: rgb(74, 124, 67);
--secondary-text-color: #fff;
}
* {padding: 0; margin: 0;}
html,body {font-size: 14px; font-family: Lato, sans-serif}
body {text-align: center; background: var(--secondary-bg-color);}
ul {list-style: none;}
.flex {display: flex; display: -moz-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox;}
.justify-content-center {-webkit-box-pack: center; -ms-justify-content: center; -moz-justify-content: center; -o-justify-content: center; -webkit-justify-content: center; justify-content: center;}
.align-items-center {-webkit-box-align: center; -moz-align-items: center; -ms-align-items: center; -o-align-items: center; -o-align-items: center; align-items: center;}
.text-decoration-no {text-decoration: none !important;}
ul li, .products-list a {display: inline-block;}
.main-theme {background: var(--main-bg-color); color: var(--secondary-text-color);}
.light-theme {background: var(--secondary-bg-color);}
.white-theme {background: #fff; color: var(--main-text-color);}
.main-theme a {color: #effc67; text-decoration: underline;}
section {max-width: 1200px; margin: 0 auto; padding: 2.14rem; box-sizing: border-box;}
section h1 {font-size: 3rem; margin-bottom: 16px;}
section h2 {font-size: 1.8rem; margin-bottom: 16px;}
section p {line-height: 1.5; font-size: 1.3rem;}
.main {position: relative;}
.products-list {margin-top: 20px;}
.products-list a {background: #fff; color: var(--main-text-color); padding: 10px 15px; border-radius: 4px; margin-left: 40px; min-width: 185px;}
.products-list a:first-child {margin-left: 0;}
.products img {width: 40px; height: 40px;}
.products h3 {font-size: 1.15rem; font-weight: normal; margin: 4px 0;}
.products a p {font-size: 0.92rem;}
.social a {border-radius: 10px; background-color: var(--main-text-color); box-shadow: rgb(0 0 0 / 10%) -2px 2px 2px 1px; color: var(--secondary-text-color); border: none; padding: 6px 0; line-height: 24px; min-width: 250px; text-align: center; font-size: 1.1rem;}
.social a img, .social a svg {width: 16px; height: 16px; vertical-align: middle; margin-right: 5px;}
.social li {margin-left: 40px;}
.social li:first-child {margin-left: 0;}
.blogs {position: relative; margin-bottom: 20px; padding-left: 10px; padding-right: 10px;}
.blogs .title {margin-bottom: 30px; color: var(--main-text-color); font-size: 1.5rem;}
.blogs .swiper-wrapper {margin: 0 0 10px;}
.blogs-slider .swiper-slide {width: 20%; display: inline-block; vertical-align: top; margin-right: 40px; }
.blogs-slider .swiper-slide:last-child {margin-right: 0 !important;}
.blogs-slider .img-wrapper {font-size: 0; border-radius: 4px; margin-bottom: 10px; overflow: hidden; border: 2px solid #fff;}
.blogs-slider img {width: 100%; height: 120px; border-radius: 4px; -webkit-user-select: none; -ms-user-select: none; user-select: none; object-fit: cover;}
.blogs-slider p {font-size: 0.95rem; color: var(--main-text-color);}
@media screen and (min-width: 1200px) {
.blogs .swiper-wrapper {-webkit-box-pack: justify; -ms-justify-content: space-between; -moz-justify-content: space-between; -o-justify-content: space-between; -webkit-justify-content: space-between; -webkit-justify-content: space-between; justify-content: space-between;}
}
@media screen and (max-width: 1200px) {
.blogs {padding-left: 20px; padding-right: 20px;}
.blogs-slider .swiper-slide {margin-right: 20px; margin-bottom: 20px;}
}
@media screen and (max-width: 768px) {
html,body {font-size: 12px}
.social li {margin-left: 0; margin-bottom: 10px;}
.social li:last-child {margin-bottom: 0;}
.products-list a {margin-left: 0; margin-bottom: 10px;}
.products-list a:last-child {margin-bottom: 0;}
.blogs {padding-left: 10px; padding-right: 10px; margin-bottom: 0; }
.blogs .swiper-wrapper {justify-content: center; -webkit-flex-wrap: wrap; -moz-flex-wrap: wrap; -o-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap;}
.blogs-slider .swiper-slide {width: 30%; margin-right: 3.3%; }
.blogs-slider .swiper-slide:nth-child(3n) {width: 30%; margin-right: 0; }
}
@media screen and (max-width: 540px) {
.blogs-slider img {height: 100px;}
}
</style>
</head>
<body>
<section class="main main-theme">
<h1>Welcome to OpenResty!</h1>
<p>If you see this page, the OpenResty web platform is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support, please refer to our <a href="https://openresty.org/">openresty.org</a> site.</p>
<p>Commercial support is available at <a href="https://openresty.com/">openresty.com</a>.</p>
</section>
<section class="social white-theme">
<ul>
<li>
<a class="text-decoration-no flex justify-content-center align-items-center" href="https://www.youtube.com/channel/UCXVmwF-UCScv2ftsGoMqxhw">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#fff" class="bi bi-youtube" viewBox="0 0 16 16">
<path d="M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408L6.4 5.209z"/>
</svg>
OpenResty YouTube Channel
</a>
</li>
<li>
<a class="text-decoration-no flex justify-content-center align-items-center" href="https://blog.openresty.com/?src=oss_index">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAEC0lEQVRoge2ZX4gVVRzHP7tRSpiLaO62Eirq0q6gsGqtIZIYkgQq14ygCCFTQc3oocCXoIcikkAWgpBewjWiQLMipR5WRENNqy0oZBMUxQ1KKVFLab8+/GZodpg7M+fcc++y4AfOw71z/vy+5/zOnN/5TZMkErQA84F/geOMIZpTv/8CfgAeAnYCnQ23yJOm1IokWQe8BHwLvNowizzJEwIwDTgATAY2AwcbYZQPaddKcxFYABwBvgL2A931NsoLSWXLO/qfXZJaHdrWvbg26E2IuSxph6Rxoy3CRwiS+jWSQUnPjraQos2eRQtwAZiQ+v8Y8CbwZQCPd8dzBp5SdQ5IemQsuFZcDuWIkaSPJHU2SoiPa8XcD1wC7sqpM4xFCG8Dl30HKoWkthpmYmvBqsQMSdpe0FeLpA5JiyTNlNTkuiKPA6sAAXuAk45z8SMwz6HuG8BRoAdYCHQBc4DpwMSo3jBwFjgE9GFhUj6Rom5JuyWdk3RN0l5JL0qaK6m5YDaWlFyVJDcc6/dFK1Z6s7dHgpL8FnW0XVKPpPEZHfW7a3HmjKSpGWPnbvY4jH8y49klzP1OYHeWw1H9U8Dd5TzMm++ARZlPqimMyguSbhXM1JCk/ZKuh1+ETFbK8/U7H/gceDDs5DrzCrAGaAKWph8WhfFgb5oeYDCsXU4Ic90hYDEmZgQuB+IUoB+YG8g4X/4AZgDXkn+WWZFkB48C34ezqRR/A6eBX6Pfk7BzZgRpIeOiktdpN/BpAAOL+AxYjc3+AiwR8hoWEm1JV067VhtQwdynFVuFc8CfwA3gH+B34D/gY+xOXw+2AO9VefYEsBzYAdyK/8zaI1OwGagAy7DwIc0wcBMYX5u9mVSAfSXqNZNwsTKbvQN4DtgAPOBrXUk2A+97tcw6XKqUeyRtk3SxTgfdHgdbgtxHJgFvAZu8Zi6bq8BUbA964fL6jbmCucAzWI44BL3UIALcDsQs5gHfYLfFWvv5qZYOahUCMBvLoPiKOY9dqmrCx7XSDGIn/lXP9ucD2BBECJiYx7DgzpW85EVpQgkBi4cqHu2mE0BMSCFg2XrXTGM7AT4ohRYC8IVHmxUFz+/DrtPVXihdId5aadqwe70LZ4FZOc8nRP1ewQLYJBuA9fVKYfZ5hCive4zTE7VdXS8hrZJueoh52mGMStTmpDLyWiHLeg8hkn08yuu3U9KHifrt8gwaXegFtnq0O4Nd3Aawy9292B5ajt0aY14GdgF1XZG4fOC5MkXsTY7TCCFIejewiK/TYzRKCJI2yj15ncXurP4bKQTZ949PPAUMSFpbre96b/ZqPAw8jyXJZ1SpMwz8giUFD1IQMYyWkJiFmKgu7GuxsFTTBUzEAPDzqFl3hzvAbTNYsxBo1NR5AAAAAElFTkSuQmCC" alt="OpenResty YouTube Channel" style="margin-top: -3px" />
OpenResty Blog
</a>
</li>
</ul>
</section>
<section class="products main-theme">
<h2>OpenResty Inc. Products</h2>
<p>We solve your unique and complex web problems with our layers of solutions and expertise from over a decade of experience.</p>
<div class="products-list">
<a class="text-decoration-no" href="https://openresty.com/en/xray/?src=oss_index">
<img src="data:image/png;base64,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
<h3>OpenResty XRay</h3>
<p>Troubleshooting and profiling tool</p>
</a>
<a class="text-decoration-no" href="https://openresty.com/en/edge/?src=oss_index">
<img src="data:image/png;base64,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
<h3>OpenResty Edge</h3>
<p>Modern web application server</p>
</a>
</div>
</section>
<section class="blogs light-theme">
<h2 class="title">OpenResty's Official Blog for Technologies & Products.</h2>
<div class="blogs-slider swiper-container">
<div class="swiper-wrapper flex">
<div class="swiper-slide">
<a class="text-decoration-no" href="https://blog.openresty.com/en/xray-azure/?src=oss_index">
<div class="img-wrapper">
<img src="data:image/image/jpeg;base64,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
</div>
<p>How to deploy the on-premises version of OpenResty XRay on Microsoft's Azure cloud</p>
</a>
</div>
<div class="swiper-slide">
<a class="text-decoration-no" href="https://blog.openresty.com/en/ysql-count-ngx-reqs/?src=oss_index">
<div class="img-wrapper">
<img src="data:image/image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAAAAAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCADPAZADASIAAhEBAxEB/8QAHQABAAICAwEBAAAAAAAAAAAAAAQGBQcBAwgCCf/EAFAQAAEDAwIDAwgGCAEGDgMAAAECAwQABREGEgcTIRQVMSJBUVRVkpPSCDJSYXGRFjM0QnKBsdEjFxgkYnOyJTVDRFNXgoOUlaGzwtNFdOH/xAAbAQEAAwADAQAAAAAAAAAAAAAAAQIDBAUGB//EADQRAAICAQMCAwYDCAMAAAAAAAABAhEDBBIhBTEGQVETFGFxgeEVImIHFjJCobHR8FORwf/aAAwDAQACEQMRAD8A/VOlKUApVO1txJg6KvFjtMi3Oyhdn9sl5twJTAj70NCQ4D4p5rrKPN9cnzGomteKSNHXK425VkVK7BbIlxKxICN/Pmdm2Y2nGPrZ8/hjz1NNgvlKx96v9k03BNz1BdodtiBYRzpTyWkbj4Jyo9SfR41Cla60XBt8e7TNWWhmFLaU/HkLmNht5tJAUpCs4UAVAHHpFQDO0rB3DXGjbVaYt9uWqrTGt03BjSnZjaWnsjPkKzhXTr081QnuIFoj6pasDzsZEN60oujdxMlPKUFyEstoHmO4rTg565A89KBaaVirtqrTVhLib1frfBLLaHXBIkJb2IWooQo5PQFQIB85BFQxxC0KbQ9fxrCzG2x3Qw7LE1vlIdIBCCrONxBBx49aAsNKwkrW2joUKJcpeqbSzFnoLkR5cxsIkJykZbVnCuqkjpnxFdkXV2lpt6e03D1FbXrrHzzYTcpCnkY8coByMZGfRkZoDL0qkcQ+JSNDXzRGnWLOq5zta6gTZWm0v8rs7SYz0h6SfJO4IQwfJ6ZKh1FVviRxuvtg17E4UcMeHbmtdXO2zvuaw5dG7dCtkEuFtt2RIUlZCnHEqShtCFKOxROAM0Btulao0f8ASE07N09PuHFS3nhndLNdV2W4wtQy222RJDJfSY8o4aktLZBWlaPMlQISUkVYV8beD7V6s2m3uJ+l27rqGOzKtUJd1ZS/NaeTuZW0gqyoLB8jH1vNmgLtSqjcOLvC21a0jcOLlxD05F1TM2hizPXJlExwqGUJDRVuyodQMZPmzVb0P9JXhBr2663tNp1fbWF6BmORrq7JnMIa5SEIUuUlQWf8AKWWy4rAC21jzdQNpUqu6J4h6E4k2pd80BrCz6igNulhci2TG5CEODqUKKCdqsEHB64IPnrFx+NvB6XqWLo2LxR0q7fZr70aPbUXZgyXXmlqQ42lvduK0qSpJTjOUn0GgLtSqmOLPDBWtzw1HEHTp1WE7jZe8mu2/V3Y5O7dnb5W3GcdcYqTE4j6AntWR6FrSyPt6lfdjWdTc5tQuDrQUXEMdf8AEUkNr3BOSNpz4UBY6VirbqrTV4gzbnar9b5cO3SJEWXIZkIU2w8wopeQtQOEqQQQoH6pBz4VWbLx24L6ktF21BYOKulLhbbDt7zlxrsw41DCjhJdUFYQknoCeh8xoC90qpac4t8LtX98nS3ETTd2GnioXYw7my6IOASS8UqwgYSrqenknr0NUvWX0oOGlr4U6k4o8PtQ2PXTGmXIrUqNabs0vat6Q20kKWnds/WbhkeUEnHpoDcNKrr3ETQcez3TUL+sbO3bLJNXbblMVMbDMSUhxLamHVZwhwLUlJSeuVAecVhWePHBaRqgaJY4q6UXf1TTbhbE3ZkyjKCiks8vdu5m4EbcZyDQF8pVRtPF7hZftT3DRdl4i6bnX60pWudbY1zZckxwj65W2FZG3wV9k+OKlaP4k8P+IXav0F1pZNQCClhck2yc3JDIeRva3lBO3cnyhnxHWgLJSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgNQ3zhvqniDftX3CdeXbFDnMiwRWXILL6nYbadxeSpRyjc84sjGDhtB8QMV7UOneIWqID9wuOmJguL+l7VBkJyk75jFzKngnr1BSOYP9VQ8/St/wBcYHoqyk0DX/FRvUnP09KslqkPx40x1yVLgwGJc6IS0Q2phD/kp3ElKl4JAPmBJFS4caG1FC1Bpudf9PSW02+Vqd9S5SWSpkyZTKmVHl+QFLRzD5AA+t4Vu3x8aYHoqL4oGiYli1rYU2eK1py4RobM+/bX7ZbokiYxzp6lMtp5+UMsONHcVAHqEg7RUXR3DC9SbJFseqrU9b469EybW8++UYjSTOU431ScBSRtWMDHQYx4V6AwPRXRPt8C6Q3bfc4TEuK+nY6w+2FtuJ9CknoR9xqdzBpzSd61XL0FeeKkfTLty1BqNUeLDjMhLyUMMDkodxkBTfM57+AcqSsAeOahzNL3RuHpa9WKy6sYRY5s1y5rMGMblJlSGk5nBp3chflbknHlJSvCAAnFbzZYYjMtxo7KGmmkhDbaEhKUpAwAAOgAHmr7wPDFRYNN6N0JPhal0pdX7Dc0RmXL9OcNy7OpyK7JUwUEoZAbaK9righIO3KgTmuNM2PUVt1zCiW7S9zYtjF1nzJTN0jxnYsIPc0mRClpw6VOKWn/AAyFYS4sHbtFblwKYHjil2DSN8I1Z9L3TFrOFR9AaMnXpe3rsmXKQiKzn0HkxpWPuUaxetIGueEn0grjxosfD29a10zq7TkKyXaNYuS5cbbLhvPLYdSw6tAdZcRIUlW1W5KkA4INb2Ystni3SVe41qhtXGc20zKloYSl59tvdy0rWBuUlO9e0E4G5WPE1MIB8RmoB5d1nZ+MHGtfDi9a44RN2y1W/ihFujFneW2/LiWRqBJSJNxG9TQcL60nltlWwFAOTkjXXELgZxDf1jxT0dcdNcQ7vbOI+omLrAf06myotzsblx0tiTMltLkw3IqmVY25G1KS0MqNe58D0UwM5xU2RR4R4y8PuPGqbtrTT8Ph5f0czXNpu8IWa02hm13C3x5UQonyJqszHpuxCitKVI27MAbBg5fiLwa4o3tjjhpC06Iu5Xe9dWjXECSwmKI16trKYPOhtOOkt9o3RnVBp9HLJCd2Qo17XwPHApgeOKWKPPn0btIX1rXGteJN5tHEGCu/RrbBL2rkWyI/OMbmkLEOA0kN7A5s5riipY6ABKATrdHA7WEbgtNjMcN3BqZzjanVIAZa7SqEnUSXRLC8+HZASDnOzIx5q9lgAeAxTA8MClijwxYOCHEmNqdPD/U9h4jTCzxLe1g1dIPcrNkU2biqU1cFTVtKmh0NkNrYyVqwUAhsgjuvfAni3btT6vudn0Q9KicKLzI1Zw3bbdQlN0kz7i1cJUdobht2ttvxPKwP9IPmr3DgZzjrTA9HjSxRoCy8O9faL+h1K0bYdL2u9a3l6emzH7Vdm0OR5d1mqckSGXkqIQ4C484nCjtVgAnBrzfrLg/xo1zC13OY0FraYzd+FKNOQhe7Xabc87KbujLnZG40HahtCWwsoDhJxuwduM/ohXG0egUsUeUON3CzXkbiFqK98KeFVoucd7hC7YWI0qEwq3ypabkypERbKilDikx+cpCF4QSAkkAmtTas4Sca9ZJ4kXaPonXE5q/aHsFsty77brXAlyH4t6Dq2RHg7G20ttblJC8q25642iv0IwPRTanw2j8qWKPG+rdHu3X6WzvBazLjytK6sult4pahZYdSoQ3raksrZebB8ntMlu2uDP1uW7VjS7q3Wn0iZl41zwa1vDt9gkv2bRMmPboqrfFddSUP36S7zwsuLyUNjYeW0Ccb3VY9IWzSelrJdLlfLNpu1wbjeXEu3GZGhttPzFpGEqecSApwgdAVE4FZXanOcDNLFHhbgrwS4iWd7hzorVeleIyZ3DdydIdmOCyx7E06qNIaU5HkNNdrmJkl0ZaUoK8sqdUCjr6L
</div>
<p>Real-Time Request Counting against Nginx Processes via YSQL</p>
</a>
</div>
<div class="swiper-slide">
<a class="text-decoration-no" href="https://blog.openresty.com/en/edge-enable-waf/?src=oss_index">
<div class="img-wrapper">
<img src="data:image/image/jpeg;base64,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
</div>
<p>High-Performance Web Application Firewall (WAF) in OpenResty Edge</p>
</a>
</div>
<div class="swiper-slide">
<a class="text-decoration-no" href="https://blog.openresty.com/en/edge-edgelang/?src=oss_index">
<div class="img-wrapper">
<img src="data:image/image/jpeg;base64,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
</div>
<p>The EdgeLang DSL in OpenResty Edge</p>
</a>
</div>
<div class="swiper-slide">
<a class="text-decoration-no" href="https://blog.openresty.com/en/edge-upstream-real-ip/?src=oss_index">
<div class="img-wrapper">
<img src="data:image/image/jpeg;base64,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
</div>
<p>How to pass the real client IP addresses to backend servers via special request headers</p>
</a>
</div>
</div>
</div>
</section>
</body>
</html>