工具链和其他-Web服务器和实例caddy

news/2024/4/30 0:05:20/文章来源:https://blog.csdn.net/qq_35729091/article/details/130376463

目录

web服务器介绍

web服务器需要哪些能力?以caddy为例

 web server(用户发请求它返回网页)

代理(proxy)

 缓存(cache)

日志(logging)

 API网关(api gateway)

TLS终结(TLS termination)

代表

实战caddy web server

Caddy

代理 

总结


web服务器介绍

web服务器需要哪些能力?以caddy为例

 web server(用户发请求它返回网页)

代理(proxy)

 缓存(cache)

日志(logging)

access_log:用户访问产生的日志;

记录访问时间、访问网址、ua、ip等等

error_log:错误日志

用来监控和报警,比如访问日志突然有大的波动,可能是后面的服务挂了

错误日志突然上升那就是服务有问题了

 API网关(api gateway)

不同设备访问途径->配置缓存->分发

API集成,API分发,API安全控制

TLS终结(TLS termination)

 可以终止https协议,内部使用其他协议 如tcp

代表

  • apache(基本不用了)
  • nginx
  • caddy(go语言写的)

实战caddy web server

Caddy

  • Go语言写的开源高性能https服务器
  • 提供命令行工具、配置文件和管理API
// cmd:
vim CaddyFile
localhost
www.test1.com
respond "Hello"
// 文件路径
root * ./static
// 访问文件
file_server browse
// caddy提供自签名证书
tls internal 
// 代理
// 反向代理访问www.test1.com实际访问的是 localhost:3000
reverse_proxy localhost:3000 localhost:3001  // 写2个有负载均衡的效果
// 代理场景2:www.test1.com/api1
route /api1* {uri strip_prefix /api1# /api1/1 -> /1reverse_proxy localhost:3000
}

caddy简介及配置:caddy简介及配置 - 简书

代理 

const express = require('express')
const app1 = express()
const app2 = express()
app1.get('/', (req, res) =>{res.send("app1")
})
app2.get('/', (req, res) => {res.send("app2")
})
app1.listen(3000)
app2.listen(3001)

总结

  • web服务器有哪些的能力?
  1. 静态资源托管
  2. 给用户返回数据
  3. 作为一个负载均衡器
  4. 反向代理
  5. 日志
  • Caddy配置起来方便吗?

目前使用的配置最方便的

tls 自签名证书

配置文件用起来方便

内部动态改配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_104295.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RF技术设计的机械数码一体化防盗锁

机械数码一体化防盗锁在传统锁具的基础上增加了一个受控的弹子,只能通过设置过的合法钥匙开启,并且增加了防盗报警功能。本文介绍了基于PIC单片机、RF技术和无线数据传输技术的机械数码一体化防盗锁的设计。 引言 机械锁和数码锁是我们日常生活中最常见的…

本地Linux服务器安装宝塔面板,并公网远程登录

文章目录 前言1. 安装宝塔2. 安装cpolar内网穿透3. 远程访问宝塔4. 固定http地址5. 配置二级子域名6. 测试访问二级子域名 前言 宝塔面板作为建站运维工具,它支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能,可提高运维效率。…

Python每日一练(20230427)

目录 1. 三数之和 🌟🌟 2. 编辑距离 🌟🌟🌟 3. 翻转字符串里的单词 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏…

SparkStreaming学习——读取socket的数据和kafka生产者的消息

目录 一、Spark Streaming概述 二、添加依赖 三、配置log4j 1.依赖下载好后打开IDEA最左侧的外部库 2.找到spark-core 3.找到apache.spark目录 4.找到log4j-defaults.properties文件 5.将该文件放在资源目录下,并修改文件名 6.修改log4j.properties第19行的…

通达信结构紧凑形态选股公式编写思路

在威廉欧奈尔的《笑傲股市》、马克米勒维尼的《股票魔法师》等书籍中都有结构紧凑形态的相关描述,股票在形成基底时,价格波动幅度逐渐减小,量能逐步萎缩,同时价格相对强度较高。 结构紧凑的形态通过眼睛观察,一般可以…

搭建家庭影音媒体中心 --公网远程连接Jellyfin流媒体服务器

文章目录 前言1. 安装Home Assistant2. 配置Home Assistant3. 安装cpolar内网穿透3.1 windows系统3.2 Linux系统3.3 macOS系统 4. 映射Home Assistant端口5. 公网访问Home Assistant6. 固定公网地址6.1 保留一个固定二级子域名6.2 配置固定二级子域名 转载自远程穿透的文章&…

如何编写高质量代码、提高编程效率?

一、 前言 高质量代码是指在满足功能需求的基础上,具备高性能、安全、可扩展、易维护、可测试等特点的代码。它不仅可以提高开发效率和代码质量,更能有效减少代码维护成本,促进团队协作和项目成功。因此,编写高质量代码对程序员来…

CHAPTER 5: 《DESIGN CONSISTENT HASHING》 第5章 《设计一致的哈希》

CHAPTER 5: DESIGN CONSISTENT HASHING 为了实现水平扩展,有效且均匀地分发请求/数据是很重要的在服务器上。一致散列是实现这一目标的常用技术。但首先,让我们深入了解一下这个问题。 重组问题 如果您有n个缓存服务器,那么平衡负载的常用…

【LeetCode】297. 二叉树的序列化与反序列化

1.问题 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列…

代码审计实战3-android java

jks java keystore 作用:保证应用的唯一性 简介:可以理解为java的密钥库,是一个用来存放密钥和证书的仓库。 (而keytool就是密钥和证书的管理工具,它把key(密钥)和certificate(证…

Android性能优化—ViewPagers + Fragment缓存优化

大家看标题,可能会有点儿懵,什么是ViewPagers,因为在很久之前,我们使用的都是ViewPager,但是现在更多的是在用ViewPager2,因此用ViewPagers(ViewPager、ViewPager2)来代替两者&#…

Camtasia2023简体中文标准版免费更新下载

Camtasia专业的 屏幕录制和视频剪辑软件3000多万专业人士在全球范围内使用Camtasia展示产品,教授课程,培训他人,以更快的速度和更吸引人的方式进行沟通和屏幕分享。使您在Windows和Mac上进行录屏和剪辑创作专业外观的视频变得更为简单。 Camt…

一家传统制造企业的上云之旅,怎样成为了数字化转型典范?

众所周知,中国是一个制造业大国。在想要上云以及正在上云的企业当中,传统制造企业也占据了相当大的比例。 那么这类企业在实施数字化转型的时候,应该如何着手?我们不妨来看看一家传统制造企业的现身说法。 国茂股份的数字化转型诉…

mysql免安装版本(简化版)

1:解压mysql-5.7.26-winx64 2:添加data文件夹 3:添加my.ini文件 内容如下: port "3306" # 设置mysql的安装目录 basedir "D://tools\mysql-5.7.26-winx64\mysql-5.7.26-winx64\" # 设置mysql数据库的数…

软件测试面试一定要看的面试题和笔试题全套教程

1、什么是软件测试?2’ 【要点】 在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档、数据以及程序进行测试。 【详解】 软件测试就是在软件投入运行前对软件需求分析、软件设计规格说明书…

【社区图书馆】PyTorch高级机器学习实战

PyTorch高级机器学习实战 作者:王宇龙,清华大学计算机博士,大型互联网公司算法专家,在国际学术会议及期刊发表过多篇论曾出版书籍《PyTorch深度学习入门与实战》,知乎"机器学习”话题优秀回答者。 亮点&#xf…

ssm+java企业公司产品分销商管理系统

一、 二、经营管理: ①分销商每月提交自己进多少货物(从总部进购了多少“鹊巢”的商品给自己负责区的大型商超)——对应的种类一共进多少货物;该种类中具体的产品又进了多少货物具体到(参考三产品管理模块)…

PCIE内核注册详解

代码结构 在Linux内核中,PCIe驱动程序的注册和处理涉及到许多文件,其中一些主要的文件包括: drivers/pci/pci.h:这个文件定义了PCIe驱动程序结构体和相关的函数。驱动程序需要包含这个头文件才能使用PCIe相关的函数和结构体。 d…

李宏毅 深度学习

目录 深度学习与自然语言处理 | 斯坦福CS224n 课程带学与全套笔记解读(NLP通关指南完结)pytorch快速入门csdn快速入门OS包PIL包Opencv包Dataset类Tensorboard的使用torchvision.transforms 的使用torchvision中数据集的使用DataLoader的使用(torch.util…

Git在工作中的使用流程

Git中的分支 master分支:所有用户可见的正式版本,都从master发布(也是用于部署生产环境的分支,确保master分支稳定性)。主分支作为稳定的唯一代码库,不做任何开发使用。master 分支一般由develop以及hotfi…