django - 服务器上的 NGINX Docker 与 Ubuntu 服务器上预先存在的 NGINX

标签 django docker ubuntu nginx docker-compose

我目前遇到一个问题,我的一个项目将在我的 Ubuntu 服务器上的 Docker 中运行,并使用 NGINX docker 容器来管理 Django 项目的反向代理。我遇到的问题是我已经在那个特定的 Ubuntu 服务器上运行了以前的 Django 项目,所以端口 80 已经被实际服务器上运行的 NGINX block 使用。
是否有一种解决方法来运行我的 Docker NGINX 以及 Ubuntu NGINX 并让我的 docker 镜像作为“附加”站点运行,因为托管在那里的 Django 站点是客户端网站,所以如果我不这样做,我宁愿不干扰它们必须。
我的项目需要 HTTPS,因为它正在向在 Android APK 28 上运行的 React-Native 应用程序提供数据,由于某种原因,该应用程序具有阻止非 HTTPS 连接在应用程序中发生的安全规则。如果其他人遇到这样的问题,我将很高兴收到有关如何解决此问题的建议。
我曾尝试在 Docker 中使用端口 81 而不是端口 80 运行 NGINX,并且效果很好,但我认为没有办法与端口 81 建立安全连接吗?
提前致谢。

最佳答案

您不能只是混淆端点的默认 HTTP 端口 - 用户浏览器默认使用 80 和 443。如果您更改这些,您的用户将不得不连接到 your.server.com:81或类似的东西。没有人会为公共(public)服务器这样做,但这可能是私有(private)服务器的一种选择。
我认为解决这个问题的合理方法是使用主机的 NGINX 将请求代理到 Docker 的 NGINX(如果有必要保留它的话)。您可以在主机的 NGINX 上处理 HTTPS 终止,并将纯 HTTP 传递给 Docker 的。
另一个合适的选择是使用另一台服务器,这样一切都可以正常工作,而不会涉及肮脏的黑客攻击。

关于django - 服务器上的 NGINX Docker 与 Ubuntu 服务器上预先存在的 NGINX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65489824/

相关文章:

python - 使用 Highcharts 的 Django Chart

python - Django - 来自模板标签内变量的字符串

docker - go get golang-migrate inside of docker 错误

python - 在 apache beam DirectRunner 中使用 KafkaIO 时出错

java - null,来自服务器的消息 : "Host ' myserver' is not allowed to connect to this MySQL server"

python - 在没有桌面的情况下在启动时运行 tkinter gui 应用程序

python - 无法导入名称 HttpResponse

django admin 如何限制选择框的值

docker - 重新启动后Windows 10 Docker网络DNS无法正常工作

Docker-compose 与 nginx 模板一起传递全局变量。向我的撰写添加命令会破坏此功能