0

我正在使用 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 端口上添加前缀咖啡。

4

3 回答 3

3

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

于 2017-09-27T14:14:50.427 回答
0

端口和请求 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-09-27T20:00:47.660 回答
0

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

于 2017-09-27T14:19:28.967 回答