首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenBSD:如何使用` `relayd`‘和’`httpd`‘重定向子域请求

OpenBSD:如何使用` `relayd`‘和’`httpd`‘重定向子域请求
EN

Server Fault用户
提问于 2017-06-20 12:14:14
回答 1查看 7.1K关注 0票数 5

Situation

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

因此,我的OpenBSD服务器在192.168.1.250上将所有http请求重定向到192.168.30.2上的host-vm

host-vm本身操作nginx来重定向子域请求,如下所示:

代码语言:javascript
复制
## 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地址,从而仅使用httpdrelayd__实现与上面相同的结果?

更多信息

如果您需要或希望获得更多有关此设置的信息,以回答我的问题,我将在这里编写一个完整的配置:blog.hermes-technology.de

EN

回答 1

Server Fault用户

回答已采纳

发布于 2017-07-01 08:46:06

关于中继,我想类似的事情会实现你想要的结果:

这定义了ip,您可以在其中找到foo“服务”--它基本上是一个主机列表(pf样式)

代码语言:javascript
复制
table <fooservice> { 192.168.30.3 }
table <barservice> { 192.168.30.4 }

在这里,您定义了一个规则模板,用于在中继部分中应用规则,将请求与头主机foo.hermes-technology.de匹配,在这种情况下,您将转发到位于中继手册中表fooservice中的主机,它们表示转发部分需要在中继部分中进行匹配的前向指令。

代码语言:javascript
复制
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
}

这定义了中继,并使用了上面定义的表和协议。

代码语言:javascript
复制
relay "proxy" {
    listen on 192.168.30.2 port 80
    protocol "httpproxy"

    forward to <fooservice> port 80
    forward to <barservice> port 80
}
票数 9
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/856807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档