apache - 将包含服务器的不同容器放入同一服务器

标签 apache docker debian reverse-proxy

我有一个带有apache2的Debian服务器。我可以通过IP地址访问它。

我想要的是能够通过类似“myIpAddress / container1”的URL从外部访问其中的容器(其中包含apache2 serveur)。我目前所拥有的只是从Debian服务器访问这些容器的权限。

我考虑过使用代理反向,但是我无法使其正常工作。

谢谢您的帮助! :-)

最佳答案

将docker容器的端口映射到主机端口,然后从<host-ip>:port访问docker容器。

docker run -p host-port:container-port image

例如,使用上述命令运行容器时,将使该容器在127.0.0.1可用
 docker run -p 80:5000 training/webapp

更新:

使用NGINX设置反向代理

本示例将普通NGINX容器用作站点A,将普通Apache服务器用作站点B。
  • 运行反向代理。
    docker run -d \ --name nginx-proxy \ -p 80:80 \ -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
  • 启动站点A的容器,在VIRTUAL_HOST变量中指定域名。
    docker run -d --name site-a -e VIRTUAL_HOST=a.example.com nginx
  • http://a.example.com上查看您的网站。
  • 在站点A仍在运行的情况下,启动站点B的容器。
    docker run -d --name site-b -e VIRTUAL_HOST=b.example.com httpd
  • http://b.example.com上 check out 站点B。

  • 注意:确保已设置DNS以将子域转发到运行nginx-proxy的主机。如果您使用的是AWS,最简单的方法是使用Route53。

    对于本地测试,通过在/ etc / hosts文件中添加条目来映射子域以解析为localhost。
    127.0.0.1    a.example.com
    
    127.0.0.1    b.example.com
    

    引用文献
  • jwilder NGNIX Proxy Github
  • NGNIX reverse proxy using docker
  • 关于apache - 将包含服务器的不同容器放入同一服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46911090/

    相关文章:

    multithreading - Apache不是多线程的吗?

    javascript - 如何克服来自CPanel的跨源请求?

    ruby-on-rails - 从内部优雅地终止 Rails 应用程序

    docker - Docker错误:使用apk时无法满足的约束

    bash - 如何使用位置替换字母

    php - 如何将 php ext 目录保存在变量中?

    python - 在 Ubuntu 远程服务器上安装 Django 项目

    django - Apache Django URL 问题

    c# - 如何从 Nuget 包动态加载 Mvc Controller 。 Docker 容器问题

    linux - 在 Debian 中找不到 "ar"命令