web-dev-qa-db-ja.com

OpenBSD:サブドメインのリクエストをリダイレクトするための `relayd`と` httpd`の使い方

状況

OpenBSDに次の設定を作成しました:

vm-server-structure

したがって、私は192.168.1.250上のOpenBSDサーバーを使用して、すべてのhttp要求をHost-vm上の192.168.30.2にリダイレクトしています。

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;
    }
}
  • したがって、ユーザーがhttpリクエストをfoo.hermes-technology.deに送信すると、このリクエストはHost-vmにリダイレクトされます。
  • その後、Host-vmサブドメインの名前に基づいてリクエストをfoo-vmのローカルIPにリダイレクトします。

質問

OpenBSDの基本パッケージのみに依存したいので、私の質問は次のとおりです。

ホストマシンで他のローカルIPアドレスにリダイレクトサブドメインリクエストする方法はありますか。httpdrelayd

詳しくは

私の質問に答えるためにこの設定の詳細が必要な場合、または必要な場合は、構成全体の概要をここに記載します: blog.hermes-technology.de

4
Jan

リレーについて私はあなたが望むものを達成するようなものだと思います:

これは、foo「サービス」を見つけることができるIPを定義します。これは、基本的にホストのリストです(pfスタイル)。

table <fooservice> { 192.168.30.3 }
table <barservice> { 192.168.30.4 }

ここでは、リレーセクションに適用するルールのテンプレートを定義し、リクエストをヘッダーHostであるfoo.hermes-technology.deと照合します。その場合、ホストに転送されます リレーされたマニュアル 彼らは、フォワードセクションがリレーセクションで一致するフォワード命令を必要としていると言います

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
}
7