我正在使用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端口上添加前缀coffee。
答案 0 :(得分:3)
您不能在docker port之后添加前缀。您只能映射端口。 要访问像localhost / coffee这样的前端,您可以配置nginx来处理这种情况(将位置配置为/ coffee和代理请求到您的后端服务器)。
答案 1 :(得分:0)
答案 2 :(得分:0)
端口和请求网址是两回事。端口用于网络通信,请求URL用于网络服务器。所以当你运行
docker run -p 9000:80 image
如果您要在localhost:9000
上投放应用,并且需要将其更改为localhost:9000/coffee
,则此更改需要包含在您的代码或网络服务器配置中,而不是在docker run命令中。
一个简单的nginx配置
http{
server {
listen 80;
location /coffee/ {
proxy_pass http://yourbackendcontainer:backendport/;
}
}
如果您还需要将/coffee/
作为网址的一部分传递给后端,那么您可以将配置更改为以下
http{
server {
listen 80;
location /coffee {
proxy_pass http://yourbackendcontainer:backendport;
}
}