Nnsx正则表达式名称错误与dnsmasq

时间:2018-01-18 18:39:33

标签: nginx nginx-location

我尝试将Nginx配置为在.local上使用通配符子域,其中子域也是文件夹的名称。例如,test-site.local:8080的位置根应为/Users/ashley/www/sites/test-site/wwwdataanother.local:8080应为/Users/ashley/www/sites/another/wwwdata

我已根据Nginx docsnginx.conf中设置了以下配置:

server {
    listen       8080;
    server_name  mbp.local ~^(?<domain>.+)\.local$;

    location / {
        root   /Users/ashley/www/sites/$domain/wwwroot;
        index  index.html;
    }
}

这不起作用(无法访问站点),如果我检查error.log,则不会收到任何错误消息。但是,mbp.local确实会产生错误:

2018/01/18 18:30:57 [error] 4968#0: *1 "/Users/ashley/www/sites//wwwroot/index.html" is not found (2: No such file or directory), client: 192.168.0.10, server: mbp.local, request: "GET / HTTP/1.1", host: "mbp.local:8080"

我做错了什么?

修改

我已从mbp.local中删除了server_name因为我认为它与正则表达式不匹配,因此没有$domain变量传递到该位置。如果我现在尝试子域,则没有错误条目。基于站点无法在浏览器中出现错误和缺少条目,我只能假设DNS查找失败。我使用dnsmasq来解析.local网址,这是正常的:

dig another.local @127.0.0.1
;; QUESTION SECTION:
;another.local.         IN  A
;; ANSWER SECTION:
another.local.      0   IN  A   127.0.0.1

我的网络设置中没有配置DNS服务器,并且添加127.0.0.1没有做 - 只会导致所有DNS查找失败。关于为什么这不起作用的任何建议?

1 个答案:

答案 0 :(得分:0)

原来它既不是Nginx(除了错误的mbp.local)也不是dnsmasq问题,而是macOS网络配置问题。

我需要在我的网络偏好设置中添加.local作为搜索域。