问题标签 [jwilder-nginx-proxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5537 浏览

docker - Docker-compose 和 nginx 代理

我正在尝试使用jwilder/nginx-proxy作为我的 angular2 应用程序的反向代理,该应用程序分为 3 个容器(角度、快递和数据库)。

我尝试了不同的配置来在端口 80 上代理对我的应用程序的请求,但是当我尝试运行 docker-compose 时,我得到:

虽然消息很清楚,端口 80 上存在冲突,但我无法找到绕过它的方法,当我将 angular 容器设置为在端口 4200 上工作时它工作得很好,但是我必须指定端口号每次我想访问该页面时都在 url 中。我正在使用反向代理,因为它不是将在我的环境中运行的唯一应用程序

下面是我的 docker-compose.yml

Dockerfile用于 Angular 容器

0 投票
0 回答
1033 浏览

docker - 使用 jwilder/nginx-proxy 具有不同端口和相同域的多个服务

我在 docker-compose 中有一些服务:

我可以连接到暴露的服务端口:

  • 站点——本地主机:80
  • Webpack——本地主机:8080
  • MySQL:--本地主机:3306

如何使用 nginx-proxy 公开同一域上不同服务器的多个端口(?):

  • 站点——example.dev:80
  • Webpack——example.dev:8080
  • MySQL:--example.dev:3306

这有效:

但这不是:

我做错了什么?我怎么解决这个问题?

//Sorry for my worst English. Hope you'll understand me

更新:

这只是一个例子。将来我会将代理作为外部网络并将服务连接到它。而且我不会docker-compose在同一主机(VPS)上运行两个“文件”。目的:同一主机上的生产和测试版本,使用相同的端口但不同的域。例如:

  • example.com——网站
  • example.com:81 -- PhpMyAdmin
  • test.example.com -- 测试网站
  • test.example.com:81 -- 用于测试的 PhpMyAdmin
0 投票
1 回答
11947 浏览

docker - 如何让 Docker 容器看到真实的用户 IP?

问题

nginx-proxyDocker 容器内(更多信息见下文),我总是为每个连接看到相同的 IP 地址:(172.18.0.1nginx-proxy网络网关)。例如:

无论我是从外部网络、本地机器还是从服务器(主机)本身发出请求,IP 地址始终是172.18.0.1.

我需要的是查看真实的客户端 IP。

尝试修复

我用谷歌搜索了很多,并尝试了不同的解决方案,但没有一个对我有用。我尝试了以下方法:

  • 禁用firewalld(在这种情况下根本不起作用,当然,iptables是空的);
  • 使用--userland-proxy=false(没有运气);
  • using --net=host(根本不是解决方案,也不起作用)。

相关链接:

那么,有什么想法吗?似乎是 iptables 路由问题或内部 Docker 错误。无论如何,它肯定与 Docker 有关,因为以下显示正确的远程用户 IP:

很奇怪!

现在我将提供有关系统的完整信息,所以请耐心等待。:)

基本的

我安装了 Centos 7.4 和 Docker:

firewalld用作防火墙。

网络配置

接口

共有三个物理接口:

还有一个虚拟桥(enp1s0enp2s0):

防火墙区域

enp3s0 接口连接到 Internet ( --zone=public),并virbr0连接到内部本地网络 ( --zone=internal)。

转发和伪装

IPv4 转发已启用:

并且区域上的伪装public配置了firewalld:

码头工人配置

Docker 有默认配置。

联网

我只创建了一个网络:

这是它的配置:

图像和容器

我正在使用jwilder/nginx-proxy图像。这是我的docker-compose.yml

如您所见,nginx-proxy容器正在侦听端口80443所有接口。

iptables

容器相关规则

以下是与容器相关的 iptables 规则:

完整的 iptables 规则列表

这是完整的输出iptables-save

0 投票
1 回答
502 浏览

wordpress - 反向代理中的所有 docker 容器都重定向到同一个域

我已经设置了一个 docker 服务器,其中我有 4 个 docker 容器,3 个有 wordpress,另一个有 contao .. 但是所有 wordpress docker-compose.yml 文件都像往常一样具有不同的域。但是,当我在浏览器中输入其他域时,它们都会将我重定向回其中一个域。我检查了日志,我可以看到有一个 301 wc 我知道是重定向。那么我应该怎么做任何有相同经历的人?

欢迎任何帮助。

这就是我用来创建反向代理和 ssl 加密的方法。

这是正在使用的 docker-compose.yml 文件之一,其余的只是更改公开的域和端口。

0 投票
1 回答
993 浏览

mysql - 登录后 Docker phpmyadmin:504 网关超时

尝试使用 docker phpmyadmin 连接几个不同的 mysql 本地(容器)和远程服务器。在我开始登录之前一切正常 - 连接到远程服务器就像一个魅力,问题是连接本地服务器的容器。我的 compose 配置文件如下所示:

  • 尝试将 mysql 容器添加到与 nginx 代理相同的网络(与 phpmyadmin 相同的子网)。
  • 尝试了不同的端口和 IP-s 和变体。

使用:

码头工人本身:

0 投票
1 回答
2957 浏览

docker - Docker Compose 和 Nginx 反向代理:我无法通过代理访问后端

我有一个包含 3 个容器的项目:反向代理容器(jwilder-nginx-proxy 映像)、fontend 容器(为由 Vue js 开发和捆绑的应用程序提供服务的 nginx 容器)和一个后端容器(为 NodeJs+ExpressJs 应用程序提供服务的 node6 容器)。后端和前端都在反向代理之后。以下是它在我的本地主机中的工作方式:

  1. 访问http://localhost:80/并提供 gui
  2. gui 应该通过http://localhost:3500从后端检索数据

一切似乎都运行良好,除了后端容器。当我尝试访问后端时,我收到“502 bad gateway”错误。这是 nginx 记录的内容:

  • GUI 加载得非常好。我对后端使用了相同的逻辑,但没有任何效果。
  • 后端应用程序绑定到容器内的端口 3000 并映射到外部的 3500。

在我的后端 Dockerfile 中,我使用了这个:

这是我的 docker-compose.yml 文件:

gui 也是如此,它是一个 nginx 服务器,监听容器内部的 8080 并映射到容器外部的 80 端口,我在 Dockerfile 中使用了它:

我认为我的 nginx.conf 文件(我用来配置反向代理而不是 GUI 应用程序的文件)有问题:

nginx.conf(反向代理配置):

我的 docker-compose 文件有问题吗?还是 nginx 配置?我对前端和后端使用了相同的逻辑。只有后端不工作。前端正在工作。

我没有在 nginx-reverse-proxy 的 Dockerfile 中使用暴露指令,因为我正在映射 compose 文件中的端口。

希望有人可以帮助我。

谢谢

编辑: 似乎一切都配置得很好。问题是节点 js 应用程序。似乎 Nginx 无法处理对 nodejs 应用程序的请求......有人可以帮忙吗?

0 投票
2 回答
1386 浏览

docker - fastcgi上的Docker nginx反向代理502错误

我正在尝试构建多网站 docker 服务器。

我想要一个容器用于代理,另一个容器用于网站。由于性能更好,我也想使用 fastcgi。

我正在使用jwilder/nginx-proxy

问题:设置 fastcgi (- VIRTUAL_PROTO=fastcgi) 导致 502 Bad Gateway 错误:

网站容器

NGINX-代理容器

来自 NGINX 代理容器的 NGINX 配置文件

为什么我的 nginx-proxy 容器看不到我的网站?我把端口搞砸了吗?

0 投票
1 回答
2809 浏览

docker - Jwilder nginx 代理 - docker compose 结构更新后的 503

我正在使用jwilder/nginx-proxy单独docker-compose.yaml的 . 它看起来像这样:

我已经使用了很长时间,当我的项目docker-compose.yaml如下所示时它工作正常:

我可以毫无问题地访问网站http://test.local或使用https://test.local预期的内容。

但是我不得不将我的文件结构更新到较新的版本:

之后它似乎不起作用。我可以毫无问题地使用 ip 和端口访问站点,但我不能再使用域来访问它。当我尝试时,我得到:

503服务暂时不可用

nginx/1.13.8

这肯定来自 jwilder nginx(而不是项目中的 nginx)。

所以问题是 - 我应该在哪里放置环境变量以使其工作?似乎当它们按原样放置时,它们不会被代理读取。

0 投票
1 回答
511 浏览

docker - 使用 Nginx + Docker 时 DigitalOcean 上的域 DNS 设置问题

从这里学习教程:https ://blog.ssdnodes.com/blog/tutorial-extending-docker-nginx-host-multiple-websites-ssl/

nginx-proxy 仓库:https ://github.com/jwilder/nginx-proxy

我无法理解如何为托管在 Digital Ocean 上的 docker + nginx 机器正确设置子域。

我想使用nginx-proxy 设置一个具有多个 Wordpress 实例的 docker + 让我们在以下方案中进行加密:

mydomain.com --> 所有 wordpress 子域的列表

wp1.mydomain.com --> Docker 上安装的单个 WP 实例

wp2.mydomain.com --> 安装在 Docker 上的另一个 WP 实例

所需的设置

为了使反向代理正常工作,我是否应该在 Digital Ocean 域面板中添加子域?

我的 dns 设置预览 如果我应该,该子域应该指向哪里?我用的是单VPS,主域指向VPS IP。如果我做对了,我的子域应该指向类似 [myserverIP]:[dockerContainerPortNumber] 但是在域设置面板中设置它之后配置 nginx-proxy 有什么意义?

我认为配置的其余部分工作正常,我只是无法理解如何设置这些子域,因此内部路由开始正常工作。

0 投票
4 回答
1164 浏览

amazon-web-services - 使用 AWS ECS 在 Node/Express Web 中强制使用 ssl

我有一个集群(在自动缩放中可能有 N 个实例),并且我有一个在 Node/Express 中完成的网站服务。

我有一个弹性负载均衡器,它有一个目标组,监听器指向这个目标组的特定路径。

一切都按预期工作,网站加载,我可以在有和没有 https 的情况下访问,但我怎样才能使 HTTPS 强制从 HTTP 重定向?我在 ECS 中没有任何代理(不知道 nginx-proxy 是否支持我的集群中的多个实例)

谢谢