我是新手使用码头和nginx在一起,所以我道歉,为我的简单问题,我无法得到一个答案,尽管浏览了youtube上的许多资源。
我创建了一个ubuntu服务器并运行以下命令
sudo apt install nginx现在,我有了一个非常简单的烧瓶应用程序停靠映像(在码头枢纽上公开可用,不是由我开发的),我想配置我的nginx作为运行该映像的容器的反向代理。
在nginx配置中,我的反向代理代码如下:
server{
listen 80;
location / {
proxy_pass "http://192.168.0.20:8000"
}
}192.168.0.20是我的服务器ip,8000是我转发码头集装箱的主机端口
docker container run -p 8000:5000 <image>但是当我运行http://192.168.0.20/时,它会打开默认的nginx index.html,而我希望它转发到我的应用程序容器来服务这个静态文件,因为当我运行http://192.168.0.20:8000/时,它会给我想要的输出。
,这听起来可能是个愚蠢的问题,但我一直在努力弄懂nginx.。
提前感谢您的帮助!
发布于 2022-02-06 16:27:04
要从容器内部到达主机,不能使用192.168.0.20,因为容器中不知道该地址。根据主机操作系统的不同,您可以使用172.17.0.1 (Linux)或host.docker.internal (Windows)。如果您的操作系统是Linux,则应该将配置更改为
server {
listen 80;
location / {
proxy_pass "http://172.17.0.1:8000/"
}
}与自己安装nginx不同,您可以使用停靠中心上可用的nginx映像。要将您的配置文件放入其中,您可以将其复制到/etc/nginx/conf.d/conf.d/default.conf。创建包含以下内容的Dockerfile
FROM nginx
COPY nginx.conf /etc/nginx/conf.d/default.conf构建并运行它
docker build -t mynginx .
docker run -d -p 80:80 mynginx现在你应该可以去http://192.168.0.20/,并得到一个从烧瓶应用程序的响应。
https://stackoverflow.com/questions/71008651
复制相似问题