nginx 404:无法解析您的域名!

zzlelutf  于 2023-05-16  发布在  Nginx
关注(0)|答案(1)|浏览(147)

我有nginx配置,使rabbitmq集群whcih有3个容器运行在里面,如rabbitmq-2A,rabbitmq-2B和rabbitmq-2C。(所以主机名在docker compose中被配置为rabbitm-2A),但nginx主机只解析小写字母(rabbitmq-2a)的主机名。
所以,我不能重命名主机,因为消息已经在队列中(don;我不想丢失现有消息)
Docker编写文件docker-compose-rabbitmq.yml

version: "3.2"

services:
  rabbitmq-2A:
    image: rabbitmq:3-management-alpine
    hostname: rabbitmq-2A

  rabbitmq-2B:
    image: rabbitmq:3-management-alpine
    hostname: rabbitmq-2B

  rabbitmq-2C:
    image: rabbitmq:3-management-alpine
    hostname: rabbitmq-2C
metricsTestA{
set $rabbitmqtest http://rabbitmq-2A;
proxy_pass $rabbitmqtest 
}

nginx尝试像rabbitmq-2a(显然)不是主机名一样解决它,但这并没有解决
我也试过逆流而上

upstream backends {
    least_conn;

    server backends.example.com:8080 max_fails=3;
}

server {
    location / {
        proxy_pass http://backends;
    }
}

https://www.nginx.com/blog/dns-service-discovery-nginx-plus/有人知道如何通过这个吗?

sqyvllje

sqyvllje1#

DNS不区分大小写(RFC 4343),所以这不是问题。
我想更多的是,主机名不正确。
以下是一些提示:

  • 你的nginx在同一个namespace里吗?
  • 如果不是,那么您需要FQDN而不是简单的名称。看看kubernetes-config。
  • nginx是否使用正确的DNS服务器?它能解决其他服务吗?

编辑

有了你最近的评论,我可以想象问题是什么。
我猜你有一个StatefulSet
然后你的主机名看起来很奇怪。它应该类似于rabbitmq-2A-1rabbitmq-1
StatfulSets根据其主机名具有特殊行为。相关文档:StatefulSet

相关问题