Docker 作为 Web 服务的代理服务器

Posted

技术标签:

【中文标题】Docker 作为 Web 服务的代理服务器【英文标题】:Docker as a Proxy server for a web service 【发布时间】:2017-06-13 20:14:00 【问题描述】:

我的应用与支持代理服务器的网络服务集成。所以我需要进行集成测试来证明它有效。

所以我想用 Docker 创建一个本地代理服务器,我可以运行真正的集成测试来验证我的 web 服务可以通过代理接口调用而没有错误。

所以我尝试了https://github.com/jwilder/nginx-proxy

我启动了容器:

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy

当我使用它时,我得到一个 503 错误503 Service Temporarily Unavailable

我误解了这个代理的作用吗?

【问题讨论】:

我认为这更接近您正在寻找的内容:github.com/sameersbn/docker-squid 这应该是这个问题的答案。它对我有用。 我运行了docker run --name squid -d --restart=always --publish 3128:3128 --volume /srv/docker/squid/cache:/var/spool/squid3 sameersbn/squid:3.3.8-22 我现在可以使用代理主机/端口docker_container.host:docker_container.port(3128) 测试我的Web 服务代理集成 【参考方案1】:

虽然这个问题已经在 cmets 中解决了,但我还是尝试回答以下问题:

我是不是误解了这个代理的作用?

是的。您的项目需要的是正向代理的可用性,而您尝试使用的是反向代理。一旦您在Difference between proxy server and reverse proxy server查看评分最高的答案,这一点就会变得更加清晰

对于 TL;DR 时刻:

有许多可用的转发代理软件。您可以为您的项目选择其中任何一种。其中一些是:

Squid Polipo Apache Traffic Server Privoxy TinyProxy

【讨论】:

没错。很棒的信息,我喜欢所有的链接。 24 小时内我会奖励你 50+ 额外的赏金

以上是关于Docker 作为 Web 服务的代理服务器的主要内容,如果未能解决你的问题,请参考以下文章

反向代理---squid的实现

反向代理---squid的实现

如何在 CentOS 7 用 cPanel 配置 Nginx 反向代理

Nginx反向代理与负载均衡

docker之NGINX镜像构建

Nginx