问题标签 [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 投票
1 回答
124 浏览

php - 在带有 Nginx-Proxy 的 Docker 中,MySQL 连接访问被拒绝,但只有 50% 的时间

我正在尝试让本地开发环境运行多个项目。经过一番繁重的修改后,我偶然发现了这个项目,并开始将其调整到我自己的项目中。每个项目由 2 个容器组成,一个 mysql 容器和一个 php 容器(来自php-apache图像)。

nginx-proxy是一个在网络上运行的独立容器。我稍微重命名了项目,所以这里叫dev-router_default.

我的项目compose.yml看起来像这样:

这些dockerfiles文件夹中的现在只是基本图像。它们只是存在,所以我以后可以放大它们。

一切都很顺利。我可以访问数据库,我可以加载 html 和 php 页面。然而。每当我加载页面时。我有 50% 的机会得到这个错误:

其他 50% 的页面加载工作正常。这不是密码错误或任何问题。设置都保持不变,但不知何故,一个连接被拒绝,另一个连接通过。

我有一种直觉,nginx-proxy一半时间没有将我的流量重定向到正确的 mysql 容器。但我似乎无法找到电话被发送到的地方。当我加载一个页面时,我在容器 CLI 中看到了 php_1 加载的日志弹出窗口。但是 mysql_1 保持沉默。

有谁知道是什么导致了这种不一致?

有没有更简单的方法来使用 docker 同时使用多个虚拟主机/域来设置开发环境?

我需要能够访问多个数据库(我现在通过为每个项目提供一个特定的端口来实现这一点),并且每个项目都有一个唯一的 url 绑定到一个document_root.

0 投票
1 回答
1632 浏览

nginx - nginx-proxy 不适用于 swagger-ui docker container 502 Bad Gateway

我想将我的本地 url 从 'localhost:port' 更改为项目相关的 url。堆栈中的每个其他容器(节点服务器等)都可以工作,但只有 swagger 容器会给出错误 502 Bad Gateway。

我将此添加到我的 /etc/hosts 文件中:

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

问题是,当我在浏览器中转到“my-api-doc.local”时,收到“502 Bad Gateway”错误。当我尝试'localhost:4000'时,它可以工作。

0 投票
1 回答
828 浏览

python - 了解 Docker 使用 Docker-Alpine-Python-Flask 编写 Nginx-Proxy

我在使用 Docker 时遇到了一些问题。我的问题是在使用 docker-compose 和这个库 https://github.com/jwilder/nginx-proxy时理解反向代理

所以我有 1 个像这样的 Dockerfile:

当我跑步时

我跑了

------------ 我的问题是在分配的端口中使用 nginx-proxy ------------------ 时的理解

1 创建 docker 网络名称 reverse-proxy 并运行 jwilder/nginx-proxy

这是我的 docker-compose.yml

然后运行

并输出 docker ps

并且当使用 curl 错误代码 503 Service Temporary UnAvailable 调用 url

然后我被困在这里......

谢谢我

0 投票
0 回答
903 浏览

php - 带有 fastcgi 后端的自动 nginx 代理

我不知道如何将jwilder/nginx-proxy直接连接到 fastcgi 后端。当我使用 docker stack 时,这是相应的撰写文件:

此配置导致 404 错误:

如果我正确理解了情况,则缺少以下内容:

}

当我将此位置文件放在 /etc/nginx/vhost.d/default_location 下甚至 /etc/nginx/vhost.d/{VIRTUAL_HOST}_location 下时,我收到一条错误消息server directive is not allowed here。当我只使用“位置块”时,我得到一个 502 Bad Gateway Error。

由于我有多个后端,它们大多是相同的,所以一些涵盖大多数设置的默认配置会很棒。

有没有人有这样的工作?

0 投票
1 回答
889 浏览

nginx - Nginx 忽略 server_name

我想为两个或多个网站设置代理服务器,但它总是向我显示第一个网站并忽略 server_name。我查看了有关杂项名称的文档,并根据提示设置了所有内容。

我的 nginx 配置如下所示:

当我打开local.ex2site.com时,它会显示来自local.ex1site.com的内容。

任何建议将不胜感激。

0 投票
2 回答
7337 浏览

docker - 错误:在文件 './docker-compose.yml' 中,服务名称 True 必须是带引号的字符串,即 'True'

我的 docker-compose.yml 如下所示。当我运行 docker-compose up 时,出现以下错误。

错误:在文件 './docker-compose.yml' 中,服务名称 True 必须是带引号的字符串,即 'True'。

我的码头工人版本是

Docker 版本 18.06.1-ce,构建 e68fc7a

我的 docker compose 版本是

docker-compose 版本 1.23.1,构建 b02f1306

运行 CoreOS 版本 1911.3.0

0 投票
3 回答
2056 浏览

docker - Docker nginx 代理,打开 ldap 和 phpldapadmin - 无法通过 nginx 访问 ldap admin

我认为我的环境中存在配置错误的问题,我想听听您对此的看法。解决它的建议或帮助将非常受欢迎。

描述: 我在通过虚拟主机名使用 jwilder/nginx-proxy 容器访问 LDAP Admin 时遇到问题,而通过具有暴露端口的真实 linux 主机名访问工作正常。使用有效的通配符证书通过 HTTPS 访问。

环境: 我在 linux (CentOS 7) 上运行 docker,我想设置一个带有 jwilder/nginx-proxy 的 docker 容器和另外两个 docker 容器:一个用于 openLdap,第二个用于 phpLdapAdmin。因此,对我的 ldapadmin 的访问将通过 nginx,而不会暴露端口。

到目前为止完成的步骤:

1.创建容器——nginx代理

2.创建容器——ldap

而不是“192.168.168.168”是我的真实公共IP地址

然后成功搜索LDAP

3.创建容器phpldapadmin

最后重启 nginx 代理容器,自动将 ldap 和 ldapadmin 添加到 nginx 配置中。

docker 重启代理

然后我得到这个暴露的端口:

图像端口名称

osixia/phpldapadmin:0.7.2 80/tcp, 389/tcp, 443/tcp ldapadmin

osixia/openldap:1.2.2 389/tcp, 0.0.0.0:636->636/tcp ldap

现在出现了奇怪的部分,我的 Linux 服务器的主机名是 dev.company.com,带有一些公共地址,我可以使用https://dev.company.com:6443访问我的 ldapadmin ,但我无法通过 URL 访问:ldap .company.com,不暴露端口。我无法在 Linux 主机本身上 ping ldap.company.com.key。

注意: 我为 Jenkins 做了同样的事情:

docker run -d --rm -u root -v /var/run/docker.sock:/var/run/docker.sock -v jenkins-data:/var/jenkins_home -v "$HOME":/home -e VIRTUAL_HOST=jenkins.company.com -e VIRTUAL_PORT=8080 --name nj jenkins

对于神器:

docker run --name artifact -d -v /var/opt/jfrog/artifactory:/var/opt/jfrog/artifactory -e VIRTUAL_HOST=artifactory.company.com -e VIRTUAL_PORT=8081 artifactory-oss

对于这两个我都有可ping通的URL,它们返回我的公共IP地址,我通过浏览器成功访问它们:jenkins.company.com和artifactory.company.com

我无法在 Linux 主机本身上 ping ldap.company.com.key。

0 投票
0 回答
105 浏览

docker - 如何使用 nginx-proxy 反向代理不在容器中运行的网站?

我了解如何使用 nginx-proxy 以便我可以将代理反向代理到在多个 docker 容器中运行的服务。但是,我的网络上有几个网站没有在我也想反向代理的容器中运行。在官方 nginx-proxy 支持论坛中,一位用户说你可以做到这一点:

您可以为 nginx 创建一个“additional.conf”。主 README 页面上有文档。

在这个附加的.conf 中,您将为名称创建一个服务器配置并将其映射到目标的 IP 地址。

您需要确保可以从容器内访问目标 IP。查看 Docker 网络类型(主机与网桥等)的选项可能会有所帮助。

但是我找不到任何讨论如何创建一个新的 .conf 文件来执行 ip 映射的内容。这个用户是对的吗?任何示例将不胜感激。

0 投票
1 回答
3129 浏览

docker - 在 jwilder/nginx-proxy 网络上隔离容器

我正在使用jwilder/nginx-proxy从单个服务器托管多个(网络)应用程序。这很好用,除了所有服务都可以相互通信,因为它们都在同一个网络上,因为这是代理工作所必需的。

代理docker-compose.yaml

应用程序 1docker-compose.yaml

应用程序 2docker-compose.yaml

通过此设置,两个应用程序都将使用应用程序 1 的 dedbcache实例。解决此问题的唯一方法是为这些服务提供唯一的名称,例如app_1_dbapp_2_db。但随后 App 1 仍然能够连接到app_2_db我想阻止的。

有没有办法在他们的 docker-composer.yaml 文件中隔离所有服务并仍然使用 nginx 代理?

0 投票
0 回答
1134 浏览

docker - 来自 docker-compose nginx 设置的 jwilder/nginx-proxy 的 503 响应

我有一台运行 ssl (certbot) nginx 的服务器,并将所有流量指向我的 nginx-proxy 正在运行的端口 5555。我试图让它将我的所有流量路由到适当的服务。

这是我的 docker-compose 设置:

还有我的 nginx proxy.conf 文件

服务器中的nginx conf

我试过(但失败了):

  1. 知识产权与text-rewriter-service:8001

  2. 尝试将服务器更改为example.com

  3. 尝试在应用程序中使用 VIRTUAL_HOST 和 VIRTUAL_PORT

  4. 尝试从 nginx 环境中删除 VIRTUAL_PORT

这是nginx 输出 www.example.com 172.26.111.1 - - [08/Dec/2018:01:18:19 +0000] "GET /graphql HTTP/1.0" 503 615 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"

可能的解决方案我不完全了解如何开始工作https ://github.com/jwilder/nginx-proxy/issues/582

我认为它在我需要更改的服务器 nginx proxy_header 上?