这是我的设计:
有一个域名: domain.com。
在我的本地网络中,我得到了一个活动目录框提供的DNS,
在端口80上运行的IIS web服务器,主机名为iis.domain.com,其中有站点iis1.domain.com,iis2.domain.com
运行在端口80上的Apache服务器,主机名为apache.domain.com,其中包含站点apache1.domain.com和apache2.domain.com。
在我的本地网络中,我可以很好地访问所有这些网站。我还为iis1、iis2、apache1和apache2提供了外部dns条目。
我只有一个公共IP地址,我想设置另一个盒子,将端口转发到互联网(端口转发端口80和443 )。我想知道在那个盒子上安装什么,以及如何配置它。
我看过nginx、have和IIS ARR,但我想知道其中哪一个最容易设置,开销最小。
在我看来,我想说的是.好的,如果这是对站点iis1.domain.com的请求,那么将该请求带到IIS服务器,如果是针对apache1.domain.com的,则转到Apache服务器。我想使用Linux解决方案,但我不知道该如何设置它。
提前谢谢你。
我看到了一个可能的解决方案,这里。
像这样的东西有用吗?
server {
listen 80 default_server;
server_name iis1.domain.com;
location / {
proxy_pass http://iis1.domain.com/;
}
}
server {
listen 80 default_server;
server_name apache1.domain.com;
location / {
proxy_pass http://apache1.domain.com/;
}
}发布于 2017-02-21 12:28:55
我会选择haproxy (我认为最简单)
只是要非常小心你的外部与内部DNS。在您的问题中的示例转发到一个dns....which,指向代理(外部)....which指向dns.我认为您理解我的意思。
HAProxy将指向您的后端IP地址,因此内部和外部DNS都将指向您的代理,并将其路由到其预期的后端。
HAProxy配置如下所示:
global
# default globals
defaults
# default globals
frontend http-in
bind YOUR.IP.GOES.HERE:80
bind YOUR.IP.GOES.HERE:443 ssl crt PATH/TO/CERT-FILE.PEM no-sslv3
mode http
option httplog
option httpclose
option forwardfor
acl iis1 hdr(Host) -i iis1.domain.com
acl iis2 hdr(Host) -i iis2.domain.com
acl apache1 hdr(Host) -i apache1.domain.com
acl apache2 hdr(Host) -i apache2.domain.com
use_backend iis if iis1
use_backend iis if iis2
use_backend apache if apache1
use_backend apache if apache2
backend iis
server IIS xxx.xxx.xxx.xxx:80 check
backend apache
server APACHE xxx.xxx.xxx.yyy:80 check发布于 2017-02-21 13:21:56
通过安装带有nginx的linux盒,我成功地实现了这一目标。此框中的端口80被转发到互联网。
在/etc/nginx中,我添加了一行以查找其他配置文件,->包括/etc/nginx/sites启用/*..conf;。
因此,在/etc/nginx/site中,启用了/i创建了一个配置文件,其中包含以下信息:
server {
listen 80;
server_name apache1.domain.com;
location /{
proxy_pass http://apache1.domain.com;
}
}
server {
listen 80;
server_name apache2.domain.com;
location /{
proxy_pass http://apache2.domain.com;
}
}
server {
listen 80;
server_name iis1.domain.com;
location /{
proxy_pass http://iis1.domain.com;
}
}
server {
listen 80;
server_name iis2.domain.com;
location /{
proxy_pass http://iis2.domain.com;
}
}https://stackoverflow.com/questions/42334242
复制相似问题