docker - 通过我的 ip:host 访问我的容器不再工作
问题描述
我在自己的服务器上使用 docker/docker-compose 和 nginx。我能够通过外部端口访问我的容器,就像my_adress:8080
我通过 nginx 进行重定向一样
{
listen 80
servername my_adress.8080
return 301 https://my_adress.8080
}
然后我删除了 nginx conf。我重新启动了 nginx 服务,但现在我无法访问http://my_adress:8080
了,自动重定向301到https://my_adress
没有端口 8080
我在网上搜索如何删除 nginx 缓存或类似的东西,但没有找到我在https://serverfault.com/questions/825331/nginx-still-redirects-even-though-i-removed-the-rule-中搜索from-the-conf 但没有找到解决方案
当我这样做时,service docker status
我进入CGroup:/system.slice/docker.service
/usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8080 -container-ip 172.19.0.3 -container-port 80
任何想法为什么我不再工作?
解决方案
我发现问题出在哪里。
我正在使用图像https://hub.docker.com/r/onlyoffice/documentserver 并设置了 https 配置
请参阅此页面中的“使用 HTTPS 运行 ONLYOFFICE 文档”: https ://helpcenter.onlyoffice.com/installation/docs-community-install-docker.aspx
在这张图片上,它们是一个将 https 重定向到 https 的自动代理,所以我没有链接到我服务器上的 nginx conf,它只在 docker-proxy 内部
所以我找到了2个解决方案:
- 删除 https 配置,使其在 http 中可用
- 或将主机服务器端口 443 (https) 绑定到 ONLYOFFICE 容器的 443 端口,因此重定向有效
推荐阅读
- javascript - 输入 autocomplete="off" 在 Chrome 最新版本中不起作用
- flutter - 在小部件之间画一条线
- docker - 无法启动容器“catalina,sh”:在 $PATH 中找不到可执行文件
- ios - 在 Swift 中使用 Alamofire 5.0 获取 3 级深度 JSON 值
- python - Add a new column to Dataframe and set MultiIndex
- python - 尝试使用 conda 时出现“语法错误:生成器表达式必须加括号”
- mongodb - 如何将 Mongodb 的默认存储引擎(wiredtiger)更改为我修改后的wiredtiger(git source build)?
- java - 如何从 Android 的匿名类中引用接口?
- php - 用于根据登录角色状态将用户引导至不同页面的按钮
- jdbc - 如何在不使用 DriverManager 的情况下动态加载 JDBC 驱动程序并将其与连接池一起使用?