Docker容器路由

时间:2019-02-20 18:19:13

标签: .htaccess docker docker-compose url-routing

我正在尝试使用docker / docker-compose来实现一个网络服务器,其中我的部分页面由PHP提供服务,而部分页面由Java提供服务。因此,当我连接到localhost/php-service时,将被路由到运行PHP服务器的容器,而连接到localhost/java-service会将我重定向到运行Java Web服务器的容器。

我的第一个方法(可能是错误的)是让一个单独的容器运行apache并使用mod-rewrite将我重定向到适当的容器。在尝试任何幻想之前,我只是尝试使用其ip重定向到我的php服务器容器:

#.htaccess
RewriteEngine on
RewriteRule .* http://192.168.128.6/ # <- IP address of container with webserver 

这不起作用,因为我的浏览器只是将URL重写为“ 192.168.128.6”,然后抱怨找不到IP。显然,重写引擎只是告诉浏览器转到其他地方,它实际上并未转发请求。我可以为每个服务器分配一个不同的端口,并将重写引擎转发到相应的端口,但是我觉得必须有一种更优雅的解决方法。我一直在寻找使用iptables的方法,但是它也不适合用于该工作...

在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

原来我想要的是mod_proxy,而不是mod_rewrite,将其添加到.htaccess中可以解决此问题!

ProxyPass         /php-service  http://{PHP_CONTAINER_IP}/php-service
ProxyPassReverse  /php-service  http://{PHP_CONTAINER_IP}/php-service

ProxyPass         /java-service  http://{JAVA_CONTAINER_IP}/java-service
ProxyPassReverse  /java-service  http://{JAVA_CONTAINER_IP}/java-service

(用实际IP替换{PHP_CONTAINER_IP}和{JAVA_CONTAINER_IP})

相关问题