用于端口80的Docker Nginx-Proxy Container基于域

时间:2017-01-10 02:24:17

标签: ruby-on-rails nginx proxy

我正在尝试设置Docker Nginx代理服务器,以便将传入的请求转发到192.168.1.120上的相应Docker容器或192.168.1.1的路由器Web管理员

所以现在我有点发脾气,但无论如何我都需要这样做。我现在有这个设置

Router 192.168.1.1 (Web Admin + Port Forwarding)
Server1 LAMP   - (Router Forwards -> port 80 for LAMP Server)
Server2 Docker - (Router Forwards -> 20 SSH, 8080, 9000 Docker Admin)  

所以我必须通过我的路由器的Web界面配置端口转发,这可以通过端口8080访问。但问题是我现在搬到佛罗里达州,我愚蠢地添加了一个端口转发规则在8080转发到Shipyard Docker Manager,我最终计划安装一个Nginx-Proxy Forwarding Docker容器。我从来没有让转发Docker容器工作,我最终切换到端口9000上的Portainer,我必须配置它,因为它是我在丢失访问我的路由器的Web界面之前已经设置转发的唯一其他端口,并且因此失去了转发港口的能力。

缺点是我无法访问我的路由器的网络界面。好处是 - 我仍然需要实现一个Nginx-Proxy端口转发容器,以便根据URL设置动态端口80转发到不同的Docker容器。

所以我想把我的LAMP服务器作为一个新的Docker容器,然后我还会有一些其他的Rails Docker容器 - 但是我需要配置一个Docker容器来根据端口将应用转发给不同的服务器。我假设我需要运行2个docker - 一个用于端口80转发,然后一个用于端口8080转发 - 这不是问题。

我无法正确配置我的Nginx配置来转发来自我的域名的传入请求,我指向我的服务器(下面的my.domain.com),需要转发到我的路由器192.168.1.1 。有关如何配置我的Nginx-Proxy Docker Container以正确转发此内容的任何帮助/建议,或者我应该在此处设置的内容,以根据URL动态地将传入请求转发到Web服务器。我可以安装我需要的任何Docker容器。

My current Config /etc/nginx/nginx.conf, running on a Nginx-Proxy Docker Container on port 8080 (Google to find the Docker Image for nginx-proxy)


# My Nginx Config to forward my.domain.com
http {
  resolver 127.0.0.1;
  access_log /var/logs/nginx/access.log;
  server {
      listen 8080;
      server_name my.domain.com;
      return 301 http://192.168.1.1:8080/$request_uri;
  }
}


I get these errors:

[error] 55#55: *2274 datacenter.URL.com could not be resolved (110: Operation timed out), client: 166.172.189.185, server: datacenter.URL.com, request: "GET / HTTP/1.1", host: "datacenter.URL.com:8080"
[error] 55#55: recv() failed (111: Connection refused) while resolving, resolver: 192.168.1.1:8080

编辑:我刚注意到每个端口一次只能运行一个Docker容器。所以我需要弄清楚如何根据域名将请求转发到不同的服务器+端口。因此,每个URL转发规则条目都需要能够转到所有不同端口上运行的不同服务器。

0 个答案:

没有答案