如何配置 nginx docker 容器以识别不同端口的本地主机应用程序?
how to config nginx docker container to recognize localhost application in different port?
设置:
以下是我的 Mac OS 上的 运行:
本地主机:8089 a nodejs REST api runing in my local, OUTSIDE of the nginx container, stand alone!
本地主机:80 nginx docker container
我能够在 nginx docker 容器内提供静态文件,但是当我将 nginx 的配置设置为:
http {
server {
location / {
root /usr/share/nginx/html;
}
location /api/ {
proxy_pass http://localhost:8089;
}
}
}
出于某种原因,任何假设指向 http://localhost:8089;
调用的 localhost:80/api
调用都会返回 404 未找到页面
404 Not Found
nginx/1.13.6
知道我哪里配置错了吗?我觉得也许我不应该在 nginx 中使用 localhost:8089
?但是我应该使用什么?
可以在此处找到示例
https://github.com/adamchenwei/docker-nginx-playground
容器有自己的网络命名空间/网络堆栈。所以容器里面的localhost
就是容器本身的localhost。
如果您是 运行 Docker Mac,容器内有一个特殊的主机名,允许您连接到 运行 上的服务主机本身。有关详细信息,请参阅此答案;
如果您在 Linux 上 运行 Docker,这个答案(在同一个问题上)允许您找到要连接的 IP 地址;
设置: 以下是我的 Mac OS 上的 运行:
本地主机:8089 a nodejs REST api runing in my local, OUTSIDE of the nginx container, stand alone!
本地主机:80 nginx docker container
我能够在 nginx docker 容器内提供静态文件,但是当我将 nginx 的配置设置为:
http {
server {
location / {
root /usr/share/nginx/html;
}
location /api/ {
proxy_pass http://localhost:8089;
}
}
}
出于某种原因,任何假设指向 http://localhost:8089;
调用的 localhost:80/api
调用都会返回 404 未找到页面
404 Not Found
nginx/1.13.6
知道我哪里配置错了吗?我觉得也许我不应该在 nginx 中使用 localhost:8089
?但是我应该使用什么?
可以在此处找到示例 https://github.com/adamchenwei/docker-nginx-playground
容器有自己的网络命名空间/网络堆栈。所以容器里面的localhost
就是容器本身的localhost。
如果您是 运行 Docker Mac,容器内有一个特殊的主机名,允许您连接到 运行 上的服务主机本身。有关详细信息,请参阅此答案;
如果您在 Linux 上 运行 Docker,这个答案(在同一个问题上)允许您找到要连接的 IP 地址;