【问题标题】:Is possible to add prefix after docker port可以在 docker 端口后添加前缀
【发布时间】:2017-09-28 04:00:47
【问题描述】:

我正在使用 docker 容器来托管我的 angular 4 项目。我有 nginx 服务器在我的客户端和我的 API 之间进行中介。无法使用类似 localhost/coffee 的方式访问我的前端。

而不是推荐的访问docker的方式 127.0.0.1:9000

之后 docker run -p 9000:80 image,

我可以这样做吗 127.0.0.1:9000/coffee 之后

docker run -p 9000/coffee:80 image.

我可以访问在实时服务器上的端口 9000 上打开的位置 localhost/coffee。我需要在暴露的端口 docker 端口上添加前缀咖啡。

【问题讨论】:

  • 也发布你的 nginx 配置

标签: docker nginx dockerfile nginx-reverse-proxy


【解决方案1】:

docker 端口后面不能加前缀,只能映射端口。 要访问 localhost/coffee 之类的前端,您可以配置 nginx 来处理这种情况(将位置配置为 /coffee 和对后端服务器的代理请求)。

【讨论】:

    【解决方案2】:

    @Girdhar Sojitra 是对的。您需要使用 nginx 作为反向代理。我想补充一些注意事项。 Jwilder nginx-proxy 可以为您的每个后端自动配置子域。

    【讨论】:

      【解决方案3】:

      端口和请求 url 是两个不同的东西。端口用于网络通信,请求 url 用于网络服务器。所以当你运行时

      docker run -p 9000:80 image
      

      如果您要在 localhost:9000 上提供应用,并且您需要将其更改为 localhost:9000/coffee,则此更改需要在您的代码或 Web 服务器配置中进行,而不是在 docker run 命令中。

      一个简单的 nginx 配置会

      http{
      server {
         listen 80;
      
         location /coffee/ {
             proxy_pass http://yourbackendcontainer:backendport/;
         }
      }
      

      如果您还需要将 /coffee/ 作为 url 的一部分传递给您的后端,那么您可以将配置更改为以下

      http{
      server {
         listen 80;
      
         location /coffee {
             proxy_pass http://yourbackendcontainer:backendport;
         }
      }
      

      【讨论】:

        猜你喜欢
        • 2017-04-20
        • 2015-08-02
        • 1970-01-01
        • 2018-11-23
        • 2017-12-07
        • 1970-01-01
        • 2018-11-01
        • 2013-04-07
        相关资源
        最近更新 更多