我在OpenBSD上创建了以下设置:

因此,我的OpenBSD服务器在192.168.1.250上将所有http请求重定向到192.168.30.2上的host-vm。
host-vm本身操作nginx来重定向子域请求,如下所示:
## the virtual server for the foo-vm
server {
listen 80;
server_name foo.hermes-technology.de;
location / {
proxy_pass http://192.168.30.3;
}
}
## the virtual server for the bar-vm
server {
listen 80;
server_name bar.hermes-technology.de;
location / {
proxy_pass http://192.168.30.4;
}
}foo.hermes-technology.de发送http请求,该请求将被重定向到host-vm。host-vm基于子域的名称将请求重定向到foo-vm的本地ip。我只想依赖OpenBSD的基本包,所以我的问题是:
如何才能将主机上的子域请求重定向到其他本地ip地址,从而仅使用httpd和relayd__实现与上面相同的结果?
如果您需要或希望获得更多有关此设置的信息,以回答我的问题,我将在这里编写一个完整的配置:blog.hermes-technology.de。
发布于 2017-07-01 08:46:06
关于中继,我想类似的事情会实现你想要的结果:
这定义了ip,您可以在其中找到foo“服务”--它基本上是一个主机列表(pf样式)
table <fooservice> { 192.168.30.3 }
table <barservice> { 192.168.30.4 }在这里,您定义了一个规则模板,用于在中继部分中应用规则,将请求与头主机foo.hermes-technology.de匹配,在这种情况下,您将转发到位于中继手册中表fooservice中的主机,它们表示转发部分需要在中继部分中进行匹配的前向指令。
http protocol "httpproxy" {
pass request quick header "Host" value "foo.hermes-technology.de" \
forward to <fooservice>
pass request quick header "Host" value "bar.hermes-technology.de" \
forward to <barservice>
block
}这定义了中继,并使用了上面定义的表和协议。
relay "proxy" {
listen on 192.168.30.2 port 80
protocol "httpproxy"
forward to <fooservice> port 80
forward to <barservice> port 80
}https://serverfault.com/questions/856807
复制相似问题