admin avatar

hiawatha服务器反向代理配置的一些坑

🕑 by admin

介绍一下Hiawatha Web服务器

Hiawatha于2002年1月开始作为一个小型Web服务器,适用于具有旧硬件的服务器。Leisink,计算机科学专业的学生的时候,最初创建的服务器,以支持学生宿舍互联网服务器在代尔夫特的荷兰南部的荷兰。由于服务器的设计以提高安全性为重点,Leisink声称“Hiawatha中有许多安全功能,你在任何其他网络服务器中都找不到。” [4]

作者说:“我很长一段时间都知道其他网络服务器中存在的漏洞。[一件事]困扰我:CGI的运行时间。[其他网络服务器下的] CGI流程可以永久运行。 CGI脚本可以DoS一个网络服务器。系统管理员需要杀死脚本。那么客户端[或黑客]继续猜测HTTP身份验证的密码呢?这些问题启发我创建Hiawatha,设置最大请求发送时间,最大CGI运行时间,客户端禁止等。在我看来,每个守护进程应具有的功能。“ [ 引证需要 ]

2009年1月版的Linux Magazine包含一篇关于Hiawatha Web服务器的文章,将其描述为“具有良好性能和一些创新安全功能的轻型Web服务器”。[5] Hiawatha经常被认为是Apache的轻量级替代品,因为它优先考虑简易安装和减少存储,而不是包括许多其他附加功能。

编写时间: C语言 开发者: Hugo Leisink 操作系统: FreeBSD, Haiku os, HP-UX, IBM AIX, Linux, OpenBSD, OS X, QNX, Solaris, Unix-like and Windows 平台: 可移植操作系统接口, 跨平台

相对应于nginx,Hiawatha反向代理代码更加简单易读。

在测试Hiawatha反向代理时遇到了一个坑。。。见下面的代码

1
2
3
4
5
6
7
8
VirtualHost {
      Hostname = www.host.com, host.com
      ReverseProxy = http://127.0.0.1:9090/
      TLScertFile = /etc/hiawatha/host.pem
      WebsiteRoot = /var/www/web
      RequireTLS = yes
      #UseGZfile = yes
}

专业的就应该知道是那里错了,

下面才是使用Hiawatha web服务器反向代理的正确方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Binding {
        Port = 443
        TLScertFile = host.pem
        Interface = 192.168.0.1 #此处填写服务器外面ip监听,即公网IP地址
#       MaxRequestSize = 2048
#       TimeForRequest = 30
}

VirtualHost {
      Hostname = www.host.com, host.com
      ReverseProxy .* http://127.0.0.1:9090/
      TLScertFile = /etc/hiawatha/host.pem
      WebsiteRoot = /var/www/web
      RequireTLS = yes #http重定向到https
      #UseGZfile = yes
}

就这么简单,注意.pem格式是ssl证书,格式如下

证书key+证书密匙+域名根证书

使用Let’s Encrypt生产的都已经包括了上面所有的证书。

可以使用以下命令合成.pem证书

cat test.key test.ca testroot.ca > host.pem

注意 > 字符,如果使用 >> 则是追加。会造成证书内容重复。

💘 相关文章

写一条评论