我的 nginx.conf 中有以下条目,这允许我转到http://somerandomstuff.domain.ie然后由我的 app_subdomain_handler 应用程序进行处理,一切正常。
upstream app_subdomain_handler {
server 127.0.0.1:5001;
keepalive 8;
}
server {
listen 0.0.0.0:80;
server_name *.domain.ie;
location / {
proxy_pass http://app_subdomain_handler/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}
}
server {
listen 443 ssl;
server_name *.domain.ie;
location / {
proxy_pass http://app_subdomain_handler/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}
}
我的问题是,如果我添加 dns TXT 记录,例如 test.domain.ie,app_subdomain_handler 永远不会收到请求。我已通过 tcpdump 检查,使用
tcpdump port 80 -s 0 -w capture.cap
并且 nginx 从未看到该请求。test.domain.ie 在浏览器中返回“未找到服务器”消息。
我使用 linode 作为主机和域名服务器,有多个 TXT 记录,有什么想法吗?为什么 TXT 记录会导致子域名无法解析?
答案1
因为这就是通配符 DNS 记录的工作方式。通配符只会用于如果没有记录任何输入名称,而不仅仅是在没有请求类型的记录时。这是为了确保记录请求的行为ANY
不会与特定类型的请求有所不同。
答案2
您应该使用 A 记录(或最终使用 CNAME)。TXT 记录应该没有帮助。
我们的想法是将其放在您的区域文件中:
@ IN A ipaddressofyourwebserver
www IN A ipaddressofyourwebserver
* IN A ipaddressofyourwebserver
您的真实域名是什么,以便我们能够提供帮助?