OpenWRTファームウェアを備えたルーターと、異なるWebサイトをホストするローカルネットワーク内の2台のコンピューターがあります。また、2つのドメイン名(domain1
とdomain2
)があり、どちらもルーターのWAN IPアドレスを指しています。ポートで着信要求を受け入れるようにルーターを設定しました。 80そしてそれらを最初のコンピュータにリダイレクトします。したがって、すべてのトラフィックは単一のマシンにリダイレクトされます。domain2
と入力するたびに2番目のコンピュータにリダイレクトされるように、ルーターにドメイン名に応じて要求を区別させるにはどうすればよいですか?
これはルーターの目的ではありません。NAT付きルーターはレイヤー3とレイヤー4(IPとポート)で動作し、必要なものはレイヤー7(アプリケーション:http)で動作します。
TLDR;ホストヘッダーに基づいてトラフィックをルーティングするようにWebプロキシを構成する必要があります。これは、haproxy/keepalivedやnginxなどの冗長なシステムセットである必要があります。これを行う方法については、ここに多くのQ/Aがあります。
とはいえ、ルーターにnginxをインストールする必要がある場合は、可能です。
opkg update
opkg install nginx
/ etc/nginx/nginx.conf
server {
server_name site1.example.com;
location / {
# app1 reverse proxy
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $Host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.1.3:80;
}
access_log /var/log/nginx/site1.example.com_access.log;
error_log /var/log/nginx/site1.example.com_error.log;
}
server {
server_name site1.mydomain.com;
location / {
# app2 reverse proxy
proxy_pass http://192.168.1.4:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $Host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log /var/log/nginx/site1.mydomain.com_access.log;
error_log /var/log/nginx/site1.mydomain.com_error.log;
}
ここで、192.168.1.3と192.168.1.4はバックエンドです。