gpt4 book ai didi

docker - 如何在Docker上为Nginx代理使用其他端口?

转载 作者:行者123 更新时间:2023-12-02 19:34:20 25 4
gpt4 key购买 nike

我有两个通过docker-compose运行的容器:

version: '3'

services:
web:
image: me/web
container_name: web

nginx:
image: me/nginx
container_name: nginx
ports:
- '80:80'
volumes:
- ../nginx:/etc/myapp/nginx

我的nginx容器从 default.conf的映射卷中复制了新的 entrypoint.sh:
#!/usr/bin/env bash

cp /etc/myapp/nginx/default.conf /etc/nginx/conf.d/default.conf
nginx -g 'daemon off;'

我的自定义 default.conf看起来像:
server {
listen 80;
server_name my.website.com;

location / {
proxy_pass http://web/;
}
}

使用此配置,一切都会按预期进行。从 docker-compose开始之后,我可以导航到 http://my.website.com并正确访问 web容器实例。

但是,现在我想将端口更改为默认 80以外的其他名称,例如 81:
services:
..

nginx:
image: me/nginx
container_name: nginx
ports:
- '81:80'
..

现在,这不再起作用。每当我访问 http://my.website.com:81时,我都会得到:

This site can’t be reached

my.website.com refused to connect.

ERR_CONNECTION_REFUSED



另一个怪异的部分是,如果我使用 localhost而不是 my.website.com,则在端口81上一切正常。
server {
listen 80;
server_name localhost;

location / {
proxy_pass http://web/;
}
}

导航到 http://localhost:81可以正常工作。

我在这里做错了什么?如何将nginx配置为 localhost(我的域)以外的其他内容,并在与 web容器不同的80端口上代理?

最佳答案

检查my.website.com上的端口81是否打开,即检查防火墙规则是否到位等

关于docker - 如何在Docker上为Nginx代理使用其他端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47580223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com