启动了 avahi 服务以后发现有点设备上使用起来有些问题,
首先是在安卓上使用 Chrome 无法访问devicename.local
,我在 这个帖子的 2022 年的回复中看到好像安卓已经支持了.local ,但是在我的设备上似乎还是不行
然后用 Safari 访问.local 域名的时候,我发现访问/
和/
中的文件是正常的,但是我在设置了以下形式的反向代理以后
server{
listen 80;
server_name devicename.local;
index index.php index.html index.htm;
location /fb/ {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
访问devicename.local/fb
的时候在 Safari 上会直接 404 ,我看到苹果的帮助文件写到过.local 可能无法正常访问 链接
但是电脑上的 Chrome 和 Edge 是正常的,而且 Safari 还是能打开默认的/
下的页面
总体用下来感觉很混乱,所以想问一下是不是我的使用姿势不太对?正确的使用方法应该是怎么样的
1
AoEiuV020CN 2023-04-14 18:02:36 +08:00
感觉不好使,我也试过一阵子就放弃了,
最后还是 dhcp 静态分配 ip 使用, 少数提供 web 服务的设备给个二级域名指过去, device name 靠不住, |
2
ksmagi 2023-04-14 18:05:02 +08:00
location /fb/
访问 devicename.local/fb 的时候 404 这不是你 nginx 配置问题吗…… |
4
juggtt213 OP 不知道是不是 safari 处理.local 的时候顺序和正常网址不同,我发现当请求到 nginx 的时候已经丢失了 host 那个部分,所以无法和 server_name 匹配。如果我把上面的 server_name 改成 _ ,来自 Safari 的请求就能正常匹配我的反代规则
|
5
billlee 2023-04-14 22:36:24 +08:00
主要是很多框架不走 libc 的名字服务,比如 golang, nodejs, wsl. 对这种要起一个支持转发到 libc 的 dns 缓存服务器,然后把系统 dns 配置指向它才好用。
|
7
themiscloud 2023-04-16 16:51:15 +08:00
完全可以不用 .local 域名,用自定义域名
个人真实在用案例小分享(比如用的域名是 nas.dev ): 1 、dnsmasq (operwrt 路由自带) 域名泛解析到 Nginx Proxy Manager(NPM) 机器上: /etc/dnsmasq.d/nas.dev.conf address=/nas.dev/192.168.1.xxx 2 、NPM 上配置服务转发 3 、mkcert 生成一个自制的 nas.dev 泛域名证书 4 、(可选)在 NPM 中根据需要配置 nas.dev 泛域名证书 5 、(可选)在电脑或手上信任 nas.dev 泛域名证书 |