我有2个nginx容器,我已经创建了通过对接组成文件。以下是我的对接组成文件。
version: '3.7'
services:
nginx1:
image: nginx:latest
hostname: nginx1
container_name: nginx1
restart: on-failure
volumes:
- nginx1-web:/usr/share/nginx/html
- nginx1-conf:/etc/nginx
ports:
- "81:80"
networks:
- kong-net
nginx2:
image: nginx:latest
hostname: nginx2
container_name: nginx2
restart: on-failure
volumes:
- nginx2-web:/usr/share/nginx/html
- nginx2-conf:/etc/nginx
ports:
- "82:80"
networks:
- kong-net
networks:
kong-net:
volumes:
kongconfig:
nginx1-web:
nginx1-conf:
nginx2-web:
nginx2-conf:
我的主机IP是1.1.1.1我已针对域API的此IP添加DNS。abc.com
然后我已经为反向代理在“/var/nginx/sites-available”中创建了一个名为“nginxfile”的文件。然后创建了它的符号链接。下面是文件nginxfile的内容
server {
listen 80;
server_name api.abc.com;
location /nginx1 {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://localhost:81;
proxy_redirect off;
}
location /nginx2 {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://localhost:82;
proxy_redirect off;
}
}
现在,当我打开1.1.1.1:81或1.1.1.1:82在浏览器中它的工作prefect.但当我试图访问api.abc.com/nginx1和api.abc.com/nginx2它给我“404找不到”错误.
我不知道哪里出错了,请帮我排除故障。
实际上,我希望在打开api.abc.com/nginx1时容器1打开,在打开api.abc.com/nginx2时容器2打开。
1条答案
按热度按时间uttx8gqw1#
你检查过主机的telnet了吗?
即
似乎容器端口是不可访问的从外面因为它属于不同的网络不是默认网络.它可能是问题我不是100%肯定