OpenWRT根据域名redirect传入的WANstream量

我有一台带有OpenWRT固件的路由器,以及本地networking中的两台主机,它们托pipe着不同的网站。 另外,我有两个域名domain1domain2 )都指向我的路由器的广域网IP地址。 我设置了路由器来接受端口80上的传入请求,并将它们redirect到第一台计算机。 因此,所有stream量都被redirect到单台机器。 如何根据域名使路由器区分请求,以便每当我键入domain2它将我redirect到第二台计算机?

这不是路由器的目的,路由器w / NAT在第3层和第4层(IP和端口)在第7层(应用程序:http)操作。

TLDR; 您需要configuration一个Web代理来根据HOST头来路由stream量,这应该是haproxy / keepalived或nginx这样的冗余系统。 这里有很多Q / A在这里如何做到这一点。

基于请求主机头的mod_proxy Fowarding

所有这一切,如果你需要在你的路由器上安装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是你的后端。

https://wiki.openwrt.org/doc/howto/http.nginx